看门狗在大程序中的使用中的使用还是非常有必要的
#pragma config WDTE = ON // Watchdog Timer Enable (WDT enabled)
#define _XTAL_FREQ 16000000 //16M
void main()
{
OSCCON = 0x78;//16M
__delay_ms(20);
ANSELCbits.ANSC6 = 0;
TRISCbits.TRISC6 = 0;
PORTCbits.RC6 = 1;//输出端口
ANSELAbits.ANSA4 = 0;
TRISAbits.TRISA4 = 1;//输入端口
PORTCbits.RC6 = 0;
__delay_ms(200);
PORTCbits.RC6 = 1;
__delay_ms(200);
PORTCbits.RC6 = 0;
__delay_ms(200);
PORTCbits.RC6 = 1;
__delay_ms(200);
PORTCbits.RC6 = 0;
WDTCONbits.WDTPS = 12;//4s
WDTCONbits.SWDTEN = 1;
while(1)
{
if(RA4 == 0)
{
__delay_ms(10);
if(RA4 == 0)
{
CLRWDT();
}
}
}
}
若在4s内没有对看门狗进行喂狗,则程序复位,RC6连接LED以提示