理论教育 ARM嵌入式系统基础与应用中看门狗的应用举例

ARM嵌入式系统基础与应用中看门狗的应用举例

时间:2023-11-03 理论教育 版权反馈
【摘要】:看门狗的基本使用方法如下:●在WDTC寄存器中设置看门狗定时器的固定装载值。WDTOF标志必须由软件清零。程序设定看门狗溢出产生复位,正常情况下,LED1闪烁,并周期性喂狗,防止看门狗溢出。图4-31 看门狗溢出产生复位的Proteus仿真电路主程序文件main.c如下:例4-22 看门狗使能后,需要在规定周期内重新喂狗,否则会产生看门狗溢出。

ARM嵌入式系统基础与应用中看门狗的应用举例

看门狗的基本使用方法如下:

●在WDTC寄存器中设置看门狗定时器的固定装载值。

●在WDMOD寄存器中设置模式。

●通过向WDFEED寄存器顺序写入0xAA和0x55,启动看门狗。

●在看门狗向下溢出之前应当再次喂狗以防止发生复位/中断。

当看门狗计数器向下溢出时,程序计数器将从0x00000000开始重新计数,和外部复位一样。可以通过检查看门狗超时标志(WDTOF),来确定看门狗是否产生复位条件。WDTOF标志必须由软件清零。

1.设置看门狗模式

978-7-111-44508-1-Chapter04-196.jpg

2.设置看门狗定时常数

978-7-111-44508-1-Chapter04-197.jpg

3.喂狗操作

978-7-111-44508-1-Chapter04-198.jpg

4.喂狗之前关中

978-7-111-44508-1-Chapter04-199.jpg(www.daowen.com)

例4-21 利用看门狗溢出复位。程序设定看门狗溢出产生复位,正常情况下,LED1闪烁,并周期性喂狗,防止看门狗溢出。如果KEY1键长时间按下时喂狗周期被打断,超过WDTC设定时间,看门狗将会溢出并产生复位。发生WDT复位后,程序判断看门狗溢出标志WDTOF是否已经被清除,若没有被清除,则LED2闪烁报警,并等待软件清除WDTOF;若在此期间KEY2键被按下,则清除WDTOF,程序又回到正常情况。Proteus仿真电路如图4-31所示。

978-7-111-44508-1-Chapter04-200.jpg

图4-31 看门狗溢出产生复位的Proteus仿真电路

主程序文件main.c如下:

978-7-111-44508-1-Chapter04-201.jpg

978-7-111-44508-1-Chapter04-202.jpg

例4-22 看门狗使能后,需要在规定周期内重新喂狗,否则会产生看门狗溢出。看门狗溢出可产生中断或者复位,本例利用看门狗溢出产生中断。确定看门狗溢出时间值,并且设定WDMOD为溢出产生中断。程序正常运行的时候,LED1闪烁,如果长时间按下KEY1键,喂狗周期将被人为延长,当时间超过WDTC所设定的周期,将触发WDT溢出中断,点亮LED2报警。看门狗一旦出现溢出,其产生的中断标志位WDINT将不能被软件清除,而只能通过复位清除,因此看门狗产生中断后就不能再次产生中断,除非重新复位芯片。Proteus仿真电路如图4-32所示。

978-7-111-44508-1-Chapter04-203.jpg

图4-32 看门狗溢出产生中断的Proteus仿真电路

主程序文件main.c如下:

978-7-111-44508-1-Chapter04-204.jpg

978-7-111-44508-1-Chapter04-205.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈