Вообще (мое мнение) работа с WDT должна строится по такому принципу: Выделяем байт(слово) - регистр для сброса WDT. В каждой обязательной для прохождения подпрограмме устанавливается один (соответствующий подпрограмме) бит в регистре. В одном месте программы (все равно где, хоть в прерывании таймера) анализируется заполнение регистра. Если все биты установлены, очищаем регистр и передергиваем WDT. В противном случае даем WDT сработать, после сброса по отсутствию установленного бита догадываемся где висели. IgorKossak видимо эту методику имел ввиду.
To over: Сброс WDT в прерывании без выше описаной методики может пропустить зависание программы в основном цикле. Т.Е. Прерывания будут работать, а основной цикл - висеть.
|