![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| EVSx1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 13.1.2008 Репутация: нет Всего: нет |
Я начинаю работать с контроллерами.Есть матричная клавиатура допустим 4*4.как организовать опрос на нажатие кнопок представляю.А как избавляются от нехорошой вещи,такой как дребезг кнопок.Просто убивать циклы(задержка)?или организовать таймер чтобы проверял временные промежутки,тогда сколько промежутков надо отследить,чтобы с уверенностью сказать ,что дребезг прошел.Кто как организует это?
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
Тут по-русски
http://itpuls.com/wrt/drebesg.html но почему лучше это делать программно мне непонятно. Предпочитаю решать проблему с дребезгом при помощи железа. По подробнее (а точнее просто на самом деле анатомия дребезга http://www.ganssle.com/debouncing.pdf -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
Дребезг контактов примерно 10 миллисекунд, короткое нажатие палцем на кнопку примерно 50 миллисекунд. Обнаружив изменение состояния на кнопке запрещаеш её опрос на 30 миллисекунд, по прошествии которых(30мс) ещё раз опрашиваеш состояние кнопки (после дребезга). Это состояние(кнопки) считаеш достоверным. Всё. -------------------- Мне нужны помощники. |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Я делаю так - опрашиваю кнопки каждые 10-15 мс, если три раза подряд я получаю состояние "кнопка нажата" или "кнопка отжата", то программа уверена что кнопка действительно нажата.
Это сообщение отредактировал(а) UniBomb - 10.7.2009, 09:52 |
|||
|
||||
| EVSx1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 13.1.2008 Репутация: нет Всего: нет |
3*15=45мс за этот промежуток сможет человек успеть нажать два раза?меня как раз волнуют вот эти временные интервалы,как их выбирают? |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
EVSx1, теоретически человек сможет два раза нажать и за 10 мс, но это ведь работа с аппаратурой это не соревнование по скоростному соревнованию. Тем более что время дребезга не всегда поддаётся предсказанию, но при этом величина времени довольно мала. 20-30 мс задержек вполне хватит, я делаю больше для избыточной перестраховки.
|
|||
|
||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
Вдвоём с другом делаете эксперимент. Один из вас открывает на редактирование текстовый файл, например "Блокнот", второй готовит секундомер(например в мобилке). По команде человека с секундомером, человек с "блокнотом" начинает лихорадочно молотить одним палцем по одной клавише. После выдержки например 10 секунд, человек с секундомером говорит "Стоп!". Затем подсчитываем количество символов в файле, делим 10000 на число символов(в файле), в результате получаем время одного нажатия в миллисекундах. Для увеличения достоверности проведите серию испытаний. Удачи! -------------------- Мне нужны помощники. |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
во первых смотри выше, а во вторых разные кнопки по разному дребезжат... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |