watchdog atmega328

Обсуждаем контроллеры компании Atmel.
Ответить
Мучитель микросхем
Сообщения: 490
Зарегистрирован: Вс май 01, 2016 17:51:38

Сообщение рокки1945 »

Здравствуйте ! подскажите
Не получается ресетить контроллер при помощи собаки через 2 секунды, вернее - 1 раз ресетит а потом цикл while крутит.
Делал всё по даташиту
WDTCSR = (1<<WDCE) |(1<<WDE);
WDTCSR = (1<<WDE) | (1<<WDP2) |(1<<WDP1) |(1<<WDP0);
Спасибо
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Как бэ, если в цикле или в прерываниях (если они есть) вачдог сбрасывается, то почему бы и не крутить?
Docendo discimus
Контактная информация:
Реклама
Мучитель микросхем
Сообщения: 490
Зарегистрирован: Вс май 01, 2016 17:51:38

Сообщение рокки1945 »

pyzhman писал(а):Как бэ, если в цикле или в прерываниях (если они есть) вачдог сбрасывается, то почему бы и не крутить?
А я его нарочно вот этим asm("wdr"); - не сбрасываю - хочу посмотреть как он работает.
В цикле asm("wdr"); - нету...........
Я запускаю "собаку" потом цикл While без asm("wdr");
Он у меня всего один раз перезагружается(контролер) - а должен постоянно.......
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Делал всё по даташиту
А я в даташите прочёл следующее:
C Code Example

Код: Выделить всё

void WDT_Prescaler_Change(void)
{
__disable_interrupt();
__watchdog_reset();
/* Start timed sequence */
WDTCSR |= (1<<WDCE) | (1<<WDE);
/* Set new prescaler(time-out) value = 64K cycles (~0.5 s) */
WDTCSR = (1<<WDE) | (1<<WDP2) | (1<<WDP0);
__enable_interrupt();
}
Note: The Watchdog Timer should be reset before any change of the WDTCSR.WDP
bits, since a change in the WDTCSR.WDP bits can result in a time-out when switching to
a shorter time-out period.
Docendo discimus
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

я пользуюсь avr-gcc, а там есть "стандартная" функция wdt_enable() - пользуюсь и горя не знаю :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Вероятно, дело не в настройке собаки (один-то раз сработала) а в остальном коде.
Реклама
Ответить

Вернуться в «AVR»