Алгоритм подсчета нажатия на кнопку
- Войдите на сайт для отправки комментариев
Ср, 23/03/2016 - 15:35
Доброго времени суток всем! Совсем недавно начал разбираться с ардуино. И собственно вопрос. Как реализвавать следующий алгоритм.
Если нажата 1 раз кнопка, светится, например, красный светодиод, если два раза - зеленый, еще раз нажимаем 1 раз - красный гаснет, если еще два раза подряд гаснет зеленый. Если три подряд нажатия гасим все светодиоды?
Понимаю что нужно копать в сторону внешних прервываний. Но каков сам алгоритм?!
для начала прочитать http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-...
Прерывания тут никчему.
нужно считать число нажатий и проверять время - если время вышло то выполнять нужное действие отсчет времени начинается с первого нажатия.
подсчет нажатий производится так :
если вывод==состояние тогда {
если !флаг тогда {
нажатия++
флаг = установлен
ждать 20мс
}
}иначе{
флаг = снят
}
если !флаг и нажатия > 0 тогда {
выбор(нажатия) {
при 1:
выводсостояниеЗапись(красн, !выводсостояниеЧтение(красн))
завершить
при 2:
выводсостояниеЗапись(зел, !выводсосояниеЧтение(зел))
завершить
при 3:
выводсостояниеЗапись(красн, отключен)
вывод состояниеЗапись(зел, отключен)
завершить
}
нажатия = 0
}
Титановый велосипед в чистом виде тут работать не будет как надо, ибо даблклик он воспринет и как даблклик, и как два одиночных клика. Если только немного подпилить чтобы ждал отсутствие даблклика...
Титановый велосипед в чистом виде тут работать не будет как надо, ибо даблклик он воспринет и как даблклик, и как два одиночных клика. Если только немного подпилить чтобы ждал отсутствие даблклика...
ничего пилить не нужно - достаточно понять, что даблклик никак не влияет на подсчёт кликов.
*за попытку заюзать триклик - ТС приговаривается к ампутации указательного пальца на правой руке... пусть средним в носу ковыряется.