/***********************************
功能:WDT测试程序
MCU:dsPIC30F4011
TOOLS:MPLAB X IDE V3.15 + XC16 V1.25
震荡器:外部4M晶振
芯艺设计室 http://www.chipart.cn
2015-12-16
***********************************/
#include <xc.h>
#include <stdint.h>
#define XTFREQ 4000000 // xtal = 4Mhz;
#define PLLMODE 16 // PLLx16 //
#define FCY XTFREQ*PLLMODE/4 // Instruction Cycle Frequency
#include <libpic30.h>
#define LED_PORT_INIT TRISBbits.TRISB6=0
#define LED_ON LATBbits.LATB6=1
#define LED_OFF LATBbits.LATB6=0
#define LED_TOOGLE LATBbits.LATB6^=1
_FOSC(CSW_FSCM_OFF & XT_PLL16);
_FWDT(WDT_OFF & WDTPSA_64 & WDTPSB_8); //默认关闭WDT, 128000/256/8/64 = 1Hz
#define DelayMs __delay_ms
#define APP 0
#if APP==1
//测试WDT复位试验
int main( void )
{
LED_PORT_INIT;
RCONbits.SWDTEN=1; //WDT使能
while(1)
{
LED_ON;
DelayMs(500);
LED_OFF;
DelayMs(5000); //等待WDT复位
}
return 0;
}
#else
//WDT正常应用
int main( void )
{
LED_PORT_INIT;
RCONbits.SWDTEN=1; //WDT使能
while(1)
{
LED_TOOGLE;
DelayMs(100);
ClrWdt(); //喂狗操作
}
return 0;
}
#endif
|
|