1. Попробовать написать пробную программу в которой watchdog работает в режиме сброса и посмотреть, есть ли сброс от него. Скорее всего сброса не будет - у этой серии (atmega*8pa) уже попадались такие "фрукты" причем иногда была неисправность в прескалере(!) сторожевого таймера - сброс не проходил при определенных его значениях. Если сброс проходит - попробовать запустить прерывание от сторожевого таймера и проверить его прохождение. Все манипуляции рекомендуется проделывать при разных питающих напряжениях - от 2.5В до 5В - так можно понять где глюк - в железе (т. е. в чипе) или в софте.
2. Если у вас микроконтроллер работает от внутреннего генератора то наверняка ноги для подключения кварцевого резонатора свободны. Подключите туда часовой кварц (без конденсаторов!) и настройте Timer2 для работы в асинхронном режиме от внешнего кварца. При максимальном значении предделителя (Tosc/1024) прерывание по переполнению таймера будет происходить как раз каждые 8 секунд (только спящий режим надо брать не PowerDown а PowerSave - самый прикол что это получается даже экономичнее чем со сторожевым таймером раза в 4).
3. Еще один способ заставить микроконтроллер просыпаться из PowerDown- это использование внешней RC цепочки (паралельно соединенный танталовый или керамический конденсатор и резистор на пару мегоом). Я так делал на старых AVR (типа ATmega8) у которых небыло асинхронных PCINT'ов и небыло возможности поставить часовой кварц, т. к. использовалось тактирование от кварцевого резонатора. Для этого необходимо подключить RC цепочку к любому свободному входу запроса прерывания INT (для новых микросхем AVR сгодится вообще любой свободный пин любого порта, т. к. у них по всем портам PCINT'ы). Вход запроса прерывания конфигурировать на срабатывание от низкого уровня сигнала (для INT) и настраивать как выход с логической 1. Непосредственно перед уходом в PowerDown перевести этот пин в режим входа с высоким импедансом (DDR*.*=0; PORT*.*=0; -> в такой последовательности чтобы не подсадить конденсатор переключением порта на вывод низкого уровня). Как только конденсатор разрядится до порогового уровня логического нуля - будет сгенерировано прерывание.
Цитата
Очень интересный факт наблюдается. По топотреблению видел, что watchdog работает(просыпался каждые 8 секунд), но только почему-то не управляет светодиодом, должен по флагу включать и выключать его(если флаг=0, то включить; если 1, товыключить). Напряжение от блока питания 3.3В
странно...без флага работает!!!Если просто включать и выключать светодиод через определенное время!!!???
скинь код! Тут скорее всего чисто программная ошибка...