roboforum.ru

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

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

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

lennen » 10 ноя 2015, 23:09

Если на кнопку нажали один раз, то нужно включить реле на 300 с. Но если за эти 300 с на кнопку нажмут еще раз, нужно выключить реле сразу же при нажатии кнопки. Как это грамотнее сделать?

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

Angel71 » 10 ноя 2015, 23:25

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


cron
Rambler\'s Top100 Mail.ru counter