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