реклама на сайте
подробности

 
 
> ATMega328P WatchDog
Ioann_II
сообщение Mar 12 2017, 02:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Здравствуйте, Уважаемые коллеги.

Столкнулся с такой вот проблемой - не получается запустить сторожевой таймер в режиме Сброс.
Делаю так:

Код
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] - для короткого!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 14:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016