Не могу сообразить, как правильнее распределить программные ресурсы (структурировать программу) при следующей задаче:
Есть микроконтроллер, он управляет несколькими выходами. Их работа зависит от состояние клавиш и времени. Т.е. при нажатии той или иной клавиши выход переключается в заданное состояние и может запускаться отчёт по времени, по прошествии которого выход изменит своё состояние. Или же выход может срабатывать в зависимости от выставленного будильника по RTC.
В прерывания хочу вынести отчёт времени, периодическое чтение RTC и естественно опрос клавиш.
А как правильнее проводить сравение выставленных будильников с RTC? В основной части программы или по периодическим прерываниям (например раз в 1 сек) и выставляя флаги сработки реагировать в основной части программы?
Сами модули управление выходами, как я понимаю следует расположить в основной части программы. И реагировать они должны в зависимости от событий, которые определились в периодических прерываниях контролирующих эти события.
Как можно обеспечить нахождение в режиме программирования устройства (выставление) пользователем условий сработки для одного выхода и при этом чтобы одновременно продолжалась работа и управление другими выходами?
|