Микроконтроллеры | Ликбез по С для микроконтроллеров PIC |
|
---|---|---|
DWD: придётся делать программную защиту от дребезга? |
|
|
Ну, задержку перед считыванием, наверно, придётся делать, приняв, что повторное нажатие не должно быть ранее, чем через 100мс, например. Один такт получается 0,108мс, а антидребезг делается, обычно, на 20мс. Значит, если программа обработки будет иметь не меньше 20мс/0,108мс=185 строк, то после отработки нажатия можно будет сразу разрешать прерывания по уровню, ожидая следующего нажатия. То есть, какие-то меры придётся принимать, но сейчас меня интересует именно дребезг. Нужно ли от него защищаться при использовании прерывания по уровню? Кто нибудь использовал это в своих прогах? |
|
|
DWD: но сейчас меня интересует именно дребезг. Нужно ли от него защищаться при использовании прерывания по уровню? |
|
|
DWD: Нужно ли от него защищаться при использовании прерывания по уровню? Если не включать это прерывание сразу после его срабатываения - то не нужно. Но перед следующим включнием - очистите его флаг ! |
|
|
poruchik: ...задержку в обработчике делаю... В двух словах можете описать логику работы? Fargus: Если не включать это прерывание сразу после его срабатываения - то не нужно. Что значит "не включать это прерывание"? |
|
|
Не активировать это прерывание некоторое время после того как оно случилось. |
|
|
Я в своих программах поступал иначе. В прерывании считывал состояния кнопок и заносил его в регистр "КНОПКИ". Если какая-либо кнопка нажата, выставлял флаг "НАЖАТА КНОПКА". |
|
|
Немного поздновато, но выскажусь |
|
|
Fargus, Вас понял. Это само собой разумеется, иначе будет, наоборот, приём дребезга. Сергей К: В самой программе, когда появлялась возможность, проверял флаг "НАЖАТА КНОПКА". У меня, похоже, будет всё наоборот, и основное занятие МК - проверка состояния кнопок. По комбинации нажатий будет выставляться определённый код на другом порту. chav1961: 1. кнопок может быть больше, чем линий с прерываниями... Да, кнопок больше - матрица 3х4, плюс одна кнопка отдельно. Итого 13 кнопок. В режиме ожидания нажатия, МК работает на частоте 37КГц, при прерывании переключается на 4МГц, быстро отрабатывает нажатие и уходит в ожидание. chav1961: 2. некоторые "особо одаренные" кнопки могут Вам вывалить под сотню прерываний при одном нажатии. На здоровье... Или я чего-то не понимаю? |
|
|
Нет, все правильно, просто не вижу смысла усложнять программу обработчиком прерываний. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |