Цитата(qulik @ Jun 19 2009, 02:15)

WDT запустил путем записи в его регистр сначала комбинации битов, разрешающих изменение режима WDT, а потом записал нужное значение. Через положеные 8 секунд произошол сброс контроллера. Попробовал остановить WDT путем записи в его регистр 0x00. Но эффекта не последовало, произошел сброс... Что делать?!?
А вы пытались останавить его тоже комбинацией или простой записью?
Может быть так попробовать:
WDTCSR |= (1<<WDCE);
WDTCSR = 0;
или так:
WDTCSR |= (1<<WDCE) | (1<<WDE);
WDTCSR = 0;
Только не забудьте прерывания блокировать на время исполнения этих двух строк.
Ну в крайнем случае так:
cli();
wdt_reset();
MCUSR &= ~(1<<WDRF);
WDTCSR |= (1<<WDCE) | (1<<WDE);
WDTCSR = 0;
sei();
Ну тут уж кажется всё предусмотрено с запасом...
Сообщение отредактировал Xenia - Jun 18 2009, 22:41