реклама на сайте
подробности

 
 
> обработка повторных нажатий клавиатуры, atmega32+4x4 kbd
GoodNews
сообщение Feb 21 2010, 18:50
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 12-01-09
Из: Minsk (BY)
Пользователь №: 43 259



Драйвер клавиатуры построен на базе атмеловского апноута AVR245. Есть одно но - повторные нажатия клавиш не могу реализовать. Т.е. теоретически представляю как это должно выглядеть, но на практике не получается. Я думал вначале использовать сравнение состояний порта клавиатуры. Т.е. при инициализации драйвера берём объявляем некоторую статическую переменную, в которую загружаем значение порта (все клавиши отпущены), затем в функции обработки клавиш считываем текущее состояние порта и сравниваем со значением по-умолчанию. Если не совпадает, то выводим значение, если совпадает - пропускаем. Также по идее должно проверяться была ли физически отпущена клавиша. Посоветуйте плиз как можно выйти из данного положения.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Feb 21 2010, 21:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(GoodNews @ Feb 21 2010, 23:50) *
Я думал вначале использовать сравнение состояний порта клавиатуры. Т.е. при инициализации драйвера берём объявляем некоторую статическую переменную,
Все правильно вы мыслите. Только статических переменных нужно две. В одной переменной хранится предыдущее состояние матрицы кнопок, а в другой - устойчивое (после устранения дребезга) состояние матрицы кнопок. Для формирования кодов повтора используйте вторую переменную. XORите новое устойчивое состояние и старое. Если результат XORа равен нулю, но состояние отличается от того, где ни одна кнопка не нажата, то используете ветвление программы для формирования автоповтора. Автоповтор требует отсчета двух временных интервалов. Первый интервал задает задержку начала автоповтора. Второй интервал формирует период автоповтора. Все просто как суп с лапшой smile.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016