Антидребезг для клавиатуры (в т.ч матричной)
Добавлено: 30 авг 2022, 20:37
Bounce (для клавиатуры)
.
Блок предназначен для фильтрации дребезга контактов на клавиатуре.
Блок восьмибитный - максимум на 8 входов/выходов. Это обусловлено оптимизацией.
Если требуется больше, примените несколько блоков.
Для всех блоков будет использован один программный таймер.
В сравнении с использованием штатного блока Bounce, на каждый выход Матричной клавиатуры, этот блок займет более чем в два раза меньше памяти, плюс обеспечит дополнительные возможности.
Алгоритм блока весьма оптимизирован, к примеру на 8 входов/выходов используется всего 4 переменные (7 байт).
Особенности:
Блок фильтрует одновременно все кнопки клавиатуры. Изменения на выходах блока произойдут только тогда, когда прекратиться дребезг на всех кнопках. С помощью этой особенности можно отфильтровать (отделить) одновременное нажатие двух клавиш от нажатия этих клавиш по отдельности. Для этого надо поставить
Таймер антидребезга на 150 - 200 мс.
.
Тест фильтрации одновременного нажатия [spoiler=Скрин проекта] [/spoiler]
[spoiler=Вывод теста в UART] [/spoiler]
Блок предназначен для фильтрации дребезга контактов на клавиатуре.
Блок восьмибитный - максимум на 8 входов/выходов. Это обусловлено оптимизацией.
Если требуется больше, примените несколько блоков.
Для всех блоков будет использован один программный таймер.
В сравнении с использованием штатного блока Bounce, на каждый выход Матричной клавиатуры, этот блок займет более чем в два раза меньше памяти, плюс обеспечит дополнительные возможности.
Алгоритм блока весьма оптимизирован, к примеру на 8 входов/выходов используется всего 4 переменные (7 байт).
Особенности:
Блок фильтрует одновременно все кнопки клавиатуры. Изменения на выходах блока произойдут только тогда, когда прекратиться дребезг на всех кнопках. С помощью этой особенности можно отфильтровать (отделить) одновременное нажатие двух клавиш от нажатия этих клавиш по отдельности. Для этого надо поставить
Таймер антидребезга на 150 - 200 мс.
.
Тест фильтрации одновременного нажатия [spoiler=Скрин проекта] [/spoiler]
[spoiler=Вывод теста в UART] [/spoiler]