Soy nuevo en el desarrollo de Estados Unidos y he estado jugando con la serie PIC durante aproximadamente 6 meses. Recientemente comencé a trabajar con el compilador XC32 C ++ de PIC32 y Microchip. No sé si tengo un malentendido fundamental de cómo funciona el WDT en la serie PIC, o si hay una advertencia de la que no tengo conocimiento, sin embargo, tengo un código que creo que debería encender un LED en RA0, luego gire se apaga y, después de 512 ms, el WDT debe restablecer la unidad de control y el proceso debe comenzar de nuevo. Lo que realmente está sucediendo es que el LED se enciende momentáneamente, luego se apaga y nunca se vuelve a encender. No sé si esto significa que el WDT está configurado incorrectamente o qué. Aquí está mi código:
#include <xc.h>
#define LED _LATA0
/*
*
*/
int main(int argc, char** argv) {
WDTCONbits.WDTPS = 0b1001; //512ms postscaler
WDTCONbits.WDTCLR = 1; // feed the watchdog
WDTCONbits.ON = 1; // enable the watchdog
TRISAbits.TRISA0 = 0; //output on RA0
ANSELAbits.ANSA0 = 0; // digital only
LED = 1; //led on
int i = 100000;
while(i--);
LED = 0; // led off
while(1); // hang up and let WDT reset us
return 0;
}
¿Qué parte del uso exitoso de WDT me estoy perdiendo?