少年三国志升天命技巧:ARM之看门狗~! - junjun - JavaEye技术网站 - 小陈的日志 - 网易...

来源:百度文库 编辑:中财网 时间:2024/05/01 09:24:49

ARM之看门狗~! - junjun - JavaEye技术网站

2009-10-12 16:19:00|  分类: 默认分类 阅读190 评论0   字号: 订阅

  看门狗(watchdog)包括一个4分频的预分频器和一个32位的计数器,时钟通过预分频器输入定时器。定时器递减计数,递减的最小值为0XFF。如果设置一个小于0XFF的值,系统会将0XFF装入计数器,因此最小看门狗间隔为t(pclk)X256X4。
   看门狗的用途是使微控制器在进入错误状态后的一定时间内复位。当看门狗使能时,如果用户程序没有在周期时间内喂狗(重装),看门狗会产生一个系统复位。
    看门狗的特性如下:
1.如果没有周期性重装,则产生片内复位。
2.调试模式。
3.由软件使能,但要求禁止硬件复位或看门狗复位/中断~。
4.错误/不完整的喂狗时序会导致复位/中断(如果使能)。
5.指示看门狗复位的标志。
6.带内部预分频器的可编程32位定时器。
7.可选择t(pclk)X4的倍数的时间周期。

基本操作:看门狗应当根据下面的方法来使用
1.在WDTC寄存器中设置看门狗定时器的固定装载值;
2.在WDMOD寄存器中设置模式;
3.通过向WDFEED寄存器顺序写入0XAA和0X55启动看门狗;
4.在看门狗向下溢出之前应当再次喂狗,以防止复位/中断~!
当看门狗计数器想下溢出时,程序计数器将从0x00000000开始,和外部复位一样。可以检查看门狗超时标志WDTOF来确定看门狗是否产生复位条件,WDTOF标志必须由软件清零。


基础实验:
1.看门狗溢出复位实验:
由于LPC复位后执行FLASH内的代码,因而需将程序写入FLASH中,即在ADS中选择DebugInFlash或者RelInFlash。正常情况下,周期喂狗,防止看门狗溢出,当意外情况发生,喂狗周期被打断,超过WDTC设定的时间,看门狗将回溢出并产生复位,发生WDT复位后,程序判断看门狗溢出标志是否已被清楚,若没有被清除,则蜂鸣器鸣叫报警。
2.看门狗溢出产生内中断实验:
看门狗使能后,需要程序在规定周期内重新喂狗,否则会产生看门狗溢出。看门狗溢出能产生中断或者复位,具体由用户程序决定。程序使能看门狗,设定看门狗溢出时间值,并且设定WDMOD为溢出产生中断,PS:看门狗超时中断只能通过禁止VIC中断的方式返回~!