Здравствуйте, Уважаемые коллеги.
Столкнулся с такой вот проблемой - не получается запустить сторожевой таймер в режиме Сброс.
Делаю так:
Код
WDR (); // сброс счетчика сторожевого таймера
WDTCSR = WDTCSR | (1<<WDCE) | (1<<WDE);
// запуск сторожевого таймера с предделителем на 512К (0,55с)
WDTCSR = (1<<WDE) | (1<<WDIE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0);
SEI(); // разрешить прерывания
Работает в режиме прерываний. Действительно, срабатывает прерывание.
Если настраиваю так:
Код
WDR (); // сброс счетчика сторожевого таймера
WDTCSR = WDTCSR | (1<<WDCE) | (1<<WDE);
// запуск сторожевого таймера с предделителем на 512К (0,55с)
WDTCSR = (1<<WDE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0);
SEI(); // разрешить прерывания
То, не работает. Точнее, срабатывает, но вместо перезапуска, останавливает работу МК. Далее помогает только если снять питание и подать заново.
Стакливался кто? или может, что-то не так делаю???
Спасибо.
Сообщение отредактировал IgorKossak - Mar 12 2017, 15:31
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!