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

 
 
> AT89C5131A-M & keyboard, задержки дребезга
toweroff
сообщение Jan 12 2009, 20:59
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



В даташите не нашел, по сему вопрос

Вариант "Нет аппаратной защиты от дребезга"

1. Ловим прерывание, сохраняем код клавиши, посылаем сигнал в процесс, выходим
2. После отловли сигнала в процессе ждем ~50мс, опять читаем регистр клавы ......
3. Ждем события "клавиша отжалась" (также ~50мс)
здесь опять же можно заморочиться с изменением уровня по реакции прерывания, впихнуть в обработчик, можно оставить в процессе
А вообще этого может и не быть, как получится.. smile.gif
4. Сбрасываем флаг прерывания
3. Сравниваем значения и case


Вариант "Есть аппаратная защита" - ну тут, наверно, все ясно

Так вот сам вопрос

Кто как делал? Или какие опытные мысли?
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Jan 12 2009, 22:41
Сообщение #2


Гуру
******

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



Вы используете матрицу клавиш или каждая клавиша на индивидуальный вход порта клавиатуры подключена? В первом случае я бы реализовал классический интервальный опрос, а прерывание от модуля клавиатуры использовал лишь для запуска опроса. Во втором случае более подходит другой метод: счетчик совпадений с перезапуском. По прерыванию от модуля клавиатуры делается циклический опрос состояния клавиши, вызвавшей прерывание. При совпадении состояния заданное число раз (10-20-50 раз, подобрать экспериментально) считаем, что дребезга нет и состояние устойчивое. Если же состояние входа хоть раз отличается, то цикл опроса/сравнения запускаем снова. Естественно, что время опроса клавиши (количество перезапусков) тоже ограничено.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 13:51
Рейтинг@Mail.ru


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