Estoy pasando por la hoja de datos de AVR2560V. En la página 65, tabla 12-1, dice que el AVR2560 tiene 3 modos para el perro guardián
-
Interrupt mode - WDE = 0, WDIE = 1
-
Reset Mode - WDE = 1, WDIE = 0
-
Both - WDE = 1, WDIE = 1
Esto significa que si queremos usar el temporizador de vigilancia como fuente de Interrupción, entonces debería deshabilitar WDE. Estoy en lo cierto? Porque cuando deshabilito WDE en el código, el temporizador de vigilancia se desactiva. He visto esto enlace también e incluso él está haciendo lo mismo. WDE
tiene sentido que debe estar habilitado, solo la tabla en la hoja de datos me confunde. ¿Alguien puede ayudarme, por favor, a aclarar esta duda?
A continuación se muestra la función Watchdog_init que estoy usando.
Watchdog_init(){
MCUSR &= ~(1<<WDRF);
WDTCSR |= (1<<WDCE) | (1<<WDE); // as per datasheet WDE should be 0?
// timeout in 8 second
WDTCSR = 1<<WDP0 | 1<<WDP3;
// watchdog interrupt enabler
WDTCSR |= _BV(WDIE);
}