本帖最后由 hotpower 于 2012-9-22 12:42 编辑
这狗狗复位编程思路是这样,WDT不用中断只是发看门狗复位命令,然后启动狗,在主程序用读复位状态函数看状态。
若是看门狗复位则亮一只灯。
不足之处是每次毕须断电一段时间再上电才可再来。原因是没清复位源,我清了就看不到灯了。
/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
#include "includes.h" //包含所需的头文件
uint8_t count;
uint8_t reststate;
void WDT_Callback(void)
{
}
/*************************************************************************************
** Function name: main
** Descriptions: DWTREST
** input parameters: 无
** output parameters: 无
** Returned value: 无
*************************************************************************************/
int main (void)
{
Set_System(); //调用系统初始化函数
UNLOCKREG();
DrvWDT_Open(E_WDT_LEVEL6);
DrvWDT_Ioctl(E_WDT_IOC_ENABLE_RESET_FUNC, 0);
DrvWDT_Ioctl(E_WDT_IOC_START_TIMER, 0);
LOCKREG();
while(1)
{
reststate=DrvSYS_GetResetSource();
if(reststate & 0x04)
{
DrvGPIO_ClrBit(E_PORT3, 1); //LED0-ON
DrvWDT_Close();
}
else
DrvGPIO_SetBit(E_PORT3, 1); //LED0-OFF
}
}
工程文件:
DWTREST.rar
(527.61 KB)
|