Работу в режиме пониженного энергопотребления можно организовать разными способами, в зависимости от конкретной задачи. Общий случай приведен в wiki.
Для вывода контроллера из спящего режима с помощью какого-либо канала ввода-вывода необходимо чтобы этот канал был настроен как активный вход (вход счетчик). Тогда изменения потенциалов на этом канале будет приводить как к выходу контроллера из режима сна, так и изменении в регистре активности интерфейсов. А алгоритм перехода обратно в режим сна уже зависит от задачи.
Во вложении пример реализации управления режимом пониженного энергопотребления, без использования регистра активности интерфейсов. Следует учитывать, что отсчет времени перехода контроллера обратно в режим сна будет начат с момента появления последнего переднего фронта на канале 1 (при многократном изменении потенциала с периодом меньше времени перехода в режим сна).
Вложений в сообщении
c3tiny_sleep.cfd 888 б, скачивался 264 раз, последний раз 2020-08-10