/*******************************************************************************
* Function Name : WWDG_IRQHandler”死"前中断
* Description : This function handles WWDG interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
extern bool Feed_Dog;
void WWDG_IRQHandler(void)
{
static u8 led2=0;
/* 喂狗 */
if(Feed_Dog==TRUE)
{
WWDG_SetCounter(0x7F);
Feed_Dog=FALSE;
}
/* 清中断标志*/
WWDG_ClearFlag();
//每进入此中断,LED2翻转一次
if(led2)
{
LED2_OFF;
led2=0;
}
else
{
LED2_ON;
led2=1;
}
}
/**********由于喂狗太早也会复位所以 就在“死”前中断 喂狗了
for(;;)
{
if(GET_LEFT()) //按左键,则系统长时间等待,也就是不喂狗!
{
SysTickDelay(1000);
}
Feed_Dog=TRUE;
if(GET_RIGHT()) //按右键则频繁喂狗
{
WWDG_SetCounter(0x7F);
}
}//按键左右的后果都是复位,不按的话会在“死”前中断【WWDG_IRQHandler】中及时喂狗LED2不停的闪
以一般的情况说,这个“死”前中断中断里面不应该
喂狗的,而是应该做系统临死前的一些工作,例如保存重要数据之类.
***************************************************************************/
|