LINUX.ORG.RU

Работа с клавиатурой


0

0

Кто хоть когда-нибудь всерьёз работал с клавиатурой.

Вобщем, накачал я информации об этих скан-кодах...

Везде совершенно по-разному написаны значения различных клавиш, вдобавок, система работы клавиатуры также везде описана по-разному.

Все сходятся на том, что для пересылки байта нужно выполнить такую последовательность: устанавливаем DATA, а далее ставим и сбрасываем CLOCK. Но прежде чем начать данную процедуру, необходимо установить стартовый бит. Здесь-то и вся проблема!!!

Везде он описан по-разному.

Приведу примеры:

1)

Start Передача Конец

CLOCK 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

DATA 0 1 1 1 X X X X X X X X 0

2)

Start Передача Конец

CLOCK 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

DATA 1 1 X X X X X X X X 1

3)

Start Передача Конец

CLOCK 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

DATA 1 0 0 X X X X X X X X 1

Может это для разных клавиатур... Я по всякому пробовал, и ничего...

Помогите, вобщем, кто-чем может... Буду очень благодарен любым советам...

Заранее благодарный вам vitas35@mail.ru


А зачем тебе такие извращения в линухе? Что бы ты не сделал, оно будет абсолютно непортабельным, и, соответственно, на хрен никому не нужным.

Antichrist
()

Этааа... а зачем тебе с какими-то clock там мучиться? Если пишешь что-то вроде драйвера, то достаточно из одного порта читать статус, в котором есть, кроме всего прочего, бит "в буфере клавиатуры что-то есть", и пока этот бит равен 1, читать из другого порта скан-код, по байтам. Всё это делать при обработке IRQ от клавиатуры.

Или тебе нужно что-то делать именно на уровне электроники?

justme
()

Уухты, лет пятнадцать назад я сделал обратную операцию - сляпал контроллер с програмкой для клавиатуры, работавший по протоколу XT, ну и по моему собственному на выбор (сразу ASCII/KOI8). Неужели это еще актуально???!!! Ну тогда у меня есть еще одна более ранная супер-разработка -- контроллер НГМД, собранный в основном на рассыпухе и с микропрограмным (на 2К EPROMe!) кодере-декодере всех служебных сигналов -- может кому надо!!!

А если серьезно, вспоминая принципиальную схему XT/AT, кажется мне, что скан коды от клавы в писюке (начиная с AT) обрабытваются контроллером-микропроцессором и получить доступ к ним для их ПОБИТОВОГО формирования/приема вроде как невозможно, или у меня уже склероз? В XT прием просто на сдвиговом регистре был сделан, но там коды только от клавы в комп передавались, а после стало можно и обратно, чтобы лампочки зажигать.

speer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.