roboforum.ru

Технический форум по робототехнике.

Как отслеживать нажатие кнопки во время таймера

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Как отслеживать нажатие кнопки во время таймера

Сообщение lennen » 10 ноя 2015, 23:09

Если на кнопку нажали один раз, то нужно включить реле на 300 с. Но если за эти 300 с на кнопку нажмут еще раз, нужно выключить реле сразу же при нажатии кнопки. Как это грамотнее сделать?
lennen
 
Сообщения: 6
Зарегистрирован: 06 ноя 2015, 14:02

Re: Как отслеживать нажатие кнопки во время таймера

Сообщение Angel71 » 10 ноя 2015, 23:25

что значит как отслеживать во время таймера? естественно берёте в прерывании таймера и смотрите состояние пина. со второй частью так же элементарно.
если(пин==нажато && предсост==не нажато){при нажатии();}
если(пин==не нажато && предсост== нажато){при отпускании();}
предсост=пин;
при нажатии()
{
если(последнее нажатие - 300c > текущее время) включить реле;
последнее нажатие = текущее время;
}
ну и так, по секрету - у авр для некоторых лап есть возможность настраивать прерывания по нарастающему или спадающему фронту. ещё не всегда хорошо выполнять много кода в прерываниях, бывает, что лучше присвоить значение какой переменной и позже в основном коде уже проверить и что-то выполнять.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4