- /*******************************************************************************
- * 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不停的闪
- 以一般的情况说,这个“死”前中断中断里面不应该
- 喂狗的,而是应该做系统临死前的一些工作,例如保存重要数据之类.
- ***************************************************************************/
|