Существует два способа подавления дребезга контактов при подключении кнопок к микроконтроллеру: 2
- Аппаратный. 2 Предполагает схемные решения, которые позволяют устранить дребезг. 2 Чаще всего это простая RC-цепь или даже один конденсатор. 2 Принцип работы такой схемы простой: конденсатору требуется какое-то время для зарядки (или разрядки). 2 А пока он полностью не зарядится, на вход микроконтроллера не поступит нужный сигнал. 2 Этого времени хватает на то, чтобы переходный процесс успел завершиться. 2
- Программный. 2 Предполагает организацию временных задержек, например, с помощью таймеров, с длительностью, заведомо превышающей длительность дребезга. 1 Алгоритм простой: при изменении уровня сигнала на входе на противоположный включается таймер (например, на 100 миллисекунд). 2 После истечения задержки проверяется сигнал. 2 Если он остался изменённым, то считается, что кнопка нажата (или отпущена — в зависимости от того, какое изменение сигнала обнаружено). 2 Если же он вернулся в исходное состояние, то считается помехой и не реагирует на сигнал. 2
Выбор способа зависит от конкретных условий и задач устройства.