Да, дебасинг в обоих направлениях необходим, если вы хотите, чтобы гарантированный единственный фронт каждый раз, когда коммутатор меняет состояние.
К счастью, вам не нужно никакого дополнительного оборудования для устранения неполадок, если коммутатор подключен к микроконтроллеру. Если у микросхемы есть внутреннее подтягивание, которое многие делают, вам не нужно ничего более внешнего, чем переключатель между микроштырьком и землей.
Я считаю, что 50 мс - хорошее время для обсуждения. Большинство переключателей отскакивают гораздо меньше, но некоторые могут быть почти такими же длинными. Но 50 мс все равно будут ощущаться мгновенно для пользователя, поэтому вы можете быть более надежным. Разница лишь в количестве, которое вы считаете в прошивке, поэтому никаких дополнительных затрат там нет. В любом случае у меня обычно есть периодическое прерывание в 1 мс по другим причинам, поэтому, если коммутатор находится в одном и том же состоянии 50 раз подряд в этом прерывании, вы объявляете его отклоненным до нового состояния.
Подробная информация о логике отладки в ответ на комментарий:
Как правило, у вас будет глобальный бит, который указывает на официальное дебатированное состояние коммутатора. Это то, что использует любая логика, которая должна знать, каким образом установлен переключатель. Единственное дополнительное состояние, которое вам нужно, - это счетчик, обычно один байт, в процедуре прерывания. Допустим, прерывание происходит каждые 1 мс, а время ожидания составляет 50 мс. Для каждого прерывания:
Если мгновенное состояние соответствует дебазированному состоянию:
Сброс счетчика до 50
Выполнено
Если мгновенное состояние отличается от отклоненного состояния:
Счетчик декрементов
Если счетчик достигает 0:
Объявить новое опровергнутое состояние
Сброс счетчика до 50
Выполнено
Да, я бы использовал один, механизм в основном тот же. Когда вы размыкаете контакт, у вас будут моменты времени, когда коммутатор имеет хороший электрический контакт, а не хороший электрический контакт. Так же, как когда вы делаете контакт.
источник
В общем да. Механические переключатели могут создавать электрические помехи (подпрыгивая) как при закрытии, так и при открытии.
источник
Обычно да, но это всегда зависит от того, что вы делаете с цифровым входом. У меня было несколько систем, которые абсолютно не нуждались в обсуждении в любом направлении.
Однако, если вы управляете прерыванием, скорее всего, вам следует отыграться.
источник