看门狗的基本使用方法如下:
●在WDTC寄存器中设置看门狗定时器的固定装载值。
●在WDMOD寄存器中设置模式。
●通过向WDFEED寄存器顺序写入0xAA和0x55,启动看门狗。
●在看门狗向下溢出之前应当再次喂狗以防止发生复位/中断。
当看门狗计数器向下溢出时,程序计数器将从0x00000000开始重新计数,和外部复位一样。可以通过检查看门狗超时标志(WDTOF),来确定看门狗是否产生复位条件。WDTOF标志必须由软件清零。
1.设置看门狗模式
2.设置看门狗定时常数
3.喂狗操作
4.喂狗之前关中断
(www.daowen.com)
例4-21 利用看门狗溢出复位。程序设定看门狗溢出产生复位,正常情况下,LED1闪烁,并周期性喂狗,防止看门狗溢出。如果KEY1键长时间按下时喂狗周期被打断,超过WDTC设定时间,看门狗将会溢出并产生复位。发生WDT复位后,程序判断看门狗溢出标志WDTOF是否已经被清除,若没有被清除,则LED2闪烁报警,并等待软件清除WDTOF;若在此期间KEY2键被按下,则清除WDTOF,程序又回到正常情况。Proteus仿真电路如图4-31所示。
图4-31 看门狗溢出产生复位的Proteus仿真电路
主程序文件main.c如下:
例4-22 看门狗使能后,需要在规定周期内重新喂狗,否则会产生看门狗溢出。看门狗溢出可产生中断或者复位,本例利用看门狗溢出产生中断。确定看门狗溢出时间值,并且设定WDMOD为溢出产生中断。程序正常运行的时候,LED1闪烁,如果长时间按下KEY1键,喂狗周期将被人为延长,当时间超过WDTC所设定的周期,将触发WDT溢出中断,点亮LED2报警。看门狗一旦出现溢出,其产生的中断标志位WDINT将不能被软件清除,而只能通过复位清除,因此看门狗产生中断后就不能再次产生中断,除非重新复位芯片。Proteus仿真电路如图4-32所示。
图4-32 看门狗溢出产生中断的Proteus仿真电路
主程序文件main.c如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。