Добрый день
Есть устройство, работает под CMSIS_RTOS. Нужно засыпать и просыпаться от изменения состояния на 2х пинах и один раз в час
Правильны ли мои мысли в реализации этого хозяйства:
1. Само "засыпание" - у Кейла в примерах это делается в задаче Idle, так и оставим
2. Тактирование GPIO - я так понимаю, без этого никак. Единственное, наверное, перевести на тактирование от внутреннего RC, кварц и PLL отключаем перед засыпанием
3. RTC настраиваем на тактирование от LSE и пусть от батарейки тикает
4. Настраиваем EXTI для пинов и RTC
При пробуждении от пинов необходимо только зафиксировать факт изменения состояния пина, увеличить счетчик и снова заснуть
Пробуждение от RTC вызовет работу в течение минуты-полторы и снова в сон.
Также есть ADC, хотелось бы как-то и его приплести для просыпания, там делитель с +5в примерно до 1в. Получается, его также нужно тактировать?
Теперь интересен сам процесс просыпания, например, от пинов. Прерывание настроено, получается, я "очнусь" в обработчике? Точнее, после __WFE() и сразу влечу в прерывание
И самый важный момент - оставляя тактирование периферии, я ведь не получу заветный 1мкА потребления?