Работает ли WDT совместно с SLEEP_MODE_PWR_DOWN?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Делаю кран для бачка, ну сами понимаете. То же самое что датчик протечки, по сути, так что требования такие же: 100% reliability, батарейное питание. Если повиснет или обесточится - потоп...

ВОПРОС НЕ ПО DATASHEET!!

Я и без ваших подсказок почитать, RTFM, знаю что SM_PWR_DOWN не запрещает работу сторожевого таймера. Вопрос про то, что в спящем режиме не увеличивается millis(), не работают остальные системные таймеры кроме WDT. Итак, каким именно макаром сочетается то, что я напишу неблокирующий код, выводящий МК из состояния сна по внешнему прерыванию, предусмотрю в этом коде периодический сброс WDT и опять же вход в спящий режим, через некоторое время (без delay)?

Как я понимаю, сразу же по входу в спящий режим возможны два сценария:

1. счетчик этого таймера либо остановится, либо не останавливается, но проверяет режим работы процессора, соответственно спящий режим не будет считаться ситуацией "дежурный цикл не отвечает или не сбрасывает WDT", соответственно не наступит того момента когда надо сбросить WDT а МК не успел, и всё будет работать нормально.

2. всё то же самое, но наоборот, соответственно через 2/4/8 же секунд после сна WDT будет считать "дежурный цикл не отвечает" и МК сбросится.

Прошу по существу, т. к. я сейчас прокручиваю страницу, зажав паяльник указательным пальцем, как карандаш, попутно лудя (или лужа?) штыри под ISP и припаивая их на проводках в старый корпус mega8-dip28, вырезанный из какой-то платы с мясом, ножницами по металлу. Геркон на пластилин прислюнявливаю. Короче, надо вчера.

dimin21590
dimin21590 аватар
Offline
Зарегистрирован: 26.10.2016