Прошу испытать в железе т.к. пока нет возможности.
В Протеусе все работает на ура.
Комментарии и критика приветствуются.
Betta версия
Создано по мотивам библиотеки OneButton.
Блок распознает разные типы нажатий и выдает короткий импульс (логическую 1) на соответствующие выходы One, Doubl, LongStart и LongStop.
На выходе DurLong подается логическая 1 с момента срабатывания режима DurLong и до прекращения подачи сигнала на вход (in).
Выходы:
One; Выход одиночного нажатия.
Doubl; Выход двойного нажатия.
LongStart; Выход старт удержания.
LongStop; Выход стоп удержания.
DurLong; Выход во время удержания.
Отличительные особенности в сравнении с использованием OneButton:
- Малый размер
- Не требуются библиотеки
- Не привязан к физическим входам
- Есть возможность использовать с блоками типа: "несколько кнопок на одном пине"
- Можно настраивать длительность импульса на выходах
- Нет функции антидребезга (включить самостоятельно на входах)
- Не умеет автоматически распознавать подключение подтягивающего резистора (при использовании подтягивающего резистора необходимо инвертировать вход)
Скачать IntButton
Добавлено (07.07.2017, 21:03)
---------------------------------------------
Блок InButton_b протестирован. Выявлена не совсем корректная работа. Отладка пока не увенчалась успехом.
Поэтому создан упрощенный, но 100% рабочий блок InButtonV1
Скачать InButtonV1
Выходы:
One - Выход одиночного нажатия (короткий импульс).
Doubl - Выход двойного нажатия (короткий импульс).
DurLong - Выход "во время удержания" (длительный сигнал).
Настраиваемые парамеры:
Tout - Время задержки логической единицы на выходах One и Doubl (ms).
doub - Время ожидания двойного клика (ms)
hold - Время ожидания удержания (ms)