Цитата:
Сообщение от onv23
А простейший способ почему не работает ? (по нажатию кнопки запоминать ее код, в этот момент читать таймер, если дельта по таймеру при следующем нажатии меньше антидребезгового окна (200-300 мсек), то, если код следующей нажатой равен предыдущему запомненному, ничего не делать, если не равен - перезаписать код последней нажатой и новый таймер)
|
Цитата:
Сообщение от admin
Вот пример с фильтром дребезга
|
К сожалению ни алгоритм onv23 ни код admin не решают проблему дребезга, в обоих вариантах считается что первое полученное значение и есть правильный код, а в дальнейшем проверяется уже дребезг относительно этого значения. Но в реальности первое значение тоже подвергнуто дребезгу.
Допустим есть кнопка, которая выдаёт значения от 100 до 120. В результате при первом считывании может быть получено значение от 100 до 120. Теоретически по коду admin-а мы получим в плагин до 20 кодов кнопки.
В реальности у меня данный код на одну и туже кнопку выдаёт 3-4 кода, допустим при первом нажатии 110, при следующем 112, а потом может и 108 и.д. , а должен всегда один, чего я и добиваюсь. Для конкретного варианта резистивных кнопок это не сложно, а вот один код на всё разнообразие вариантов требует времени.