NXP

LPC2148--WDT看门狗实验

2019-07-12 12:12发布

//本人用开发板测试过,是可以实现WDT复位功能的 #include #include "hc595.h" #include "timer.h" #include "pll.h"   /******************************************************* * 名称:RstWdt() * 功能:看门狗喂狗操作。 ********************************************************/ void RstWdt(void) { WDFEED = 0xAA; WDFEED = 0x55; }   //led灯 void Init_led(void) { HC595_Init(); HC595_DATA |=(1<<16); Write595(); //灭灯 Timer1_DelaynUs(250000); }   /***************************************************** * 名称:main() * 功能:初始 PLL 和定时器口及 WDT,然后开始先对 LED 进行亮灯控制,并进行喂狗处理; * 并进入死循环,LED 灯持续点亮,等待 WDT 复位;如果取消喂狗,则 LED 灯闪烁。 ******************************************************/ void main(void) { PLL_Init(); Init_Timer1(); Init_led(); //初始化LED灯 WDTC = 0x500000; // 设置WDTC,喂狗重装值 WDMOD = 0x03; // 设置并启动WDT RstWdt(); // 进行喂狗操作 while(1) { HC595_DATA &=~(1<<16);Write595(); //亮灯 Timer1_DelaynUs(250000); RstWdt(); // 进行喂狗操作 //***停止喂狗,如果灯闪烁,则说明有复位,否则没有复位 if(WDMOD_bit.WDTOF == 1) { WDMOD_bit.WDRESET = 1; WDMOD_bit.WDTOF = 0; } } }