-
- сначала для обработчика кнопок была заведена отдельная задача, но потом для экономии стека перевел все на ртосный таймер. Таймеры там(Freertos) тоже реализованы в виде задачи, но поскольку логических таймеров у меня несколько, на задаче кнопок была сэкономлена память(стек). abivan(134 знак., 17.02.2022 17:01)
- ADC - ILYAUL(17.02.2022 16:48)
- Уже давно опрашиваю кнопки с периодом 100 мс. Никаких алгоритмов
устранения дребезга. Полёт нормальный. - SciFi(17.02.2022 14:42)
- А это смотря кто и как нажимает. У нас был механик по весам,
который тестировал наши весы всегда, если он протестировал -
проблем не было. При уже подзасранной пленочной клаве и скорости
полного набора цены в пару секунд так просто не отделаешься. - Andreas(17.02.2022 14:47)
- Возможно. Просто я хотел донести до ТС мысль, что очень часто простейший подход без выкрутасов прекрасно работает. Ну а ваш сценарий — это, скорее, попытка выжать максимум из клавиатуры, оставляющей желать. Такие задачи надо ставить (или не ставить) осознанно, понимая, что их решение требует соответствующих усилий. - SciFi(17.02.2022 14:51)
- А это смотря кто и как нажимает. У нас был механик по весам,
который тестировал наши весы всегда, если он протестировал -
проблем не было. При уже подзасранной пленочной клаве и скорости
полного набора цены в пару секунд так просто не отделаешься. - Andreas(17.02.2022 14:47)
- 1982 год. спектрум. (и добрая доля подобных ему 8-и биток тех
времён). одно единственное прерывание с кадровой частотой. в нём
сканируется вся матрица клавиатуры и устраняется дребезг. вот не
помню, что бы спекки пропускал нажатия клавиш. кстати, там на
кнопках не было никаких RC-фильтров. просто примените эти древние
технологии давно забытой цивилизации и всё у вас будет работать. не
изобретайте велосипед пожалста. - Mahagam(17.02.2022 14:40)
- Ну, я не очень-то изобретаю. RC-фильтры в платах STM-Discovery и
SiLabs тоже стоят. Я у них копировал решения. В STM32 есть EXTI
прерывания на (вроде бы) любые внешние источники, как по фронту,
так и по спаду. У Мил@ндра эти прерывания привязаны к определённым
ногам. Отсюда велосипед. - Costic(17.02.2022 14:49)
- RC фильтры - это просто защита от статики скорее всего. А не
антидребезг. - Andreas(17.02.2022 14:49)
- да, антидребезг всегда программный - Лaгyнoв(17.02.2022 15:25)
- Maxim Integrated имеет другое . Costic(76 знак., 17.02.2022 17:02, ссылка, картинка)
- я говорю исключительно про кнопки, подключенные к МК. Если МК есть, то антидребезг программный - Лaгyнoв(17.02.2022 17:54)
- Maxim Integrated имеет другое . Costic(76 знак., 17.02.2022 17:02, ссылка, картинка)
- да, антидребезг всегда программный - Лaгyнoв(17.02.2022 15:25)
- RC фильтры - это просто защита от статики скорее всего. А не
антидребезг. - Andreas(17.02.2022 14:49)
- Ну, я не очень-то изобретаю. RC-фильтры в платах STM-Discovery и
SiLabs тоже стоят. Я у них копировал решения. В STM32 есть EXTI
прерывания на (вроде бы) любые внешние источники, как по фронту,
так и по спаду. У Мил@ндра эти прерывания привязаны к определённым
ногам. Отсюда велосипед. - Costic(17.02.2022 14:49)
- Нефиг кнопку быстро жмякать. Так что неспешно по таймеру, как mse и подсказал, смотри состояние кнопки и как-то обрабатывай эти данные... POV(58 знак., 17.02.2022 14:38)
- Ващета, принято обрабатывать клавишы по тимеру. Ну, подавление
дребезга, всё такое... - mse homjak(17.02.2022 14:36)
- Спасибо. Свежий взгляд помогает. :-) Я об этом не задумывался, т.к.
RC-фильтр вопрос дребезга решает. А теперь буду в обычном потоке
опрашивать кнопку и, если она нажата 100+мс, то выставлять
флаг/сигнал. А если не нажата - сбрасывать в 0 счётчик. - Costic(17.02.2022 14:41)
- первый раз слышу в жизни - "RC-фильтр вопрос дребезга решает". :-) - Лaгyнoв(17.02.2022 15:26)
- это является рекомендуемым решением даже для подавления дребезга энкодеров - POV(17.02.2022 15:55)
- А почему нет? Решает. Для контактных датчиков такое часто применяю.
Но RC-фильтр дает запаздывание реакции, а это не всегда приемлемо. - AlexBi(17.02.2022 15:44)
- у меня жизнь на АЗС началась в 1996 с датчиков литров на герконах. И сразу подавление дребезга у меня было только программным (от герконов такой красивый дребезг всегда!). RC-фильтр после оптрона на входе МК - только для защиты входа, чтоб по проходной емкости оптрона не спалить ножку. - Лaгyнoв(17.02.2022 16:13)
- Лучше нажатие сразу отрабатывать, а отпускание по нескольким отсутствием нажания в течении 100мс. - Andreas(17.02.2022 14:43)
- первый раз слышу в жизни - "RC-фильтр вопрос дребезга решает". :-) - Лaгyнoв(17.02.2022 15:26)
- Спасибо. Свежий взгляд помогает. :-) Я об этом не задумывался, т.к.
RC-фильтр вопрос дребезга решает. А теперь буду в обычном потоке
опрашивать кнопку и, если она нажата 100+мс, то выставлять
флаг/сигнал. А если не нажата - сбрасывать в 0 счётчик. - Costic(17.02.2022 14:41)