Я пытаюсь создать будильник, который просыпается в определенное время и выполняет ряд инструкций. Чтобы установить время пробуждения, я собираюсь использовать наушники Android-устройства для отправки последовательных данных в MCU о времени пробуждения. Я просто включу его, сделаю передачу и отключу разъем. Затем время устанавливается на MCU. Передача также синхронизирует время, чтобы установить таймер соответствующим образом.
Я могу установить прерывание по таймеру с помощью предварительного делителя, чтобы дать мне 4 секунды на каждое прерывание. Затем используйте 2 байта в качестве вторичного счетчика. Это дало бы мне 72 часа, которые я мог бы ждать, а мне нужно только 24, так как я могу сбросить настройки, когда день закончится.
Итак, мой вопрос возникает, когда устройство сбрасывается. Я могу сохранить текущее время в EEPROM, а затем прочитать его при загрузке, но сколько накладных расходов при текущем использовании? Я хочу, чтобы батарея работала как можно дольше.
Мой вопрос, возможно, нуждается в уточнении, но мне было интересно, есть ли лучший способ или я иду по этому пути правильно.
Используйте RTC, который поддерживает линию сигнализации, например. ДС1375 . Чип может управлять линией прерывания в заданное время/дату. Вы должны выбрать соответствующий спящий режим AVR, который «слушает» выбранное прерывание. Нет необходимости использовать таймеры AVR.
Я использую внутренний сторожевой таймер в attiny44 в аналогичном случае. Его можно настроить на выдачу прерывания (не сброса) каждые 8 секунд. Что хорошо, так это то, что прерывание WDT может вывести чип из самого глубокого спящего режима «отключение питания».
Питер Джей