实例7---看门狗定时器WDT-----程序目的:如何应用WDT的看门狗模式与定时器模式
在工业现场,往往会由于供电电源、空间电磁干扰或其他原因引起强烈的干扰噪声。这些干极易使单片机产生误动作,从而失去应有的控制功能,引起MSP430发生“程序跑飞”事故。若不进行有效的处理,程序就不能回到正常的状态,从而失去应有的控制功能。看门狗定时器的工作原理很简单,只要是在规定时间内没有进行“喂狗”操作,则会产生一个非屏蔽中断,使系统复位,从而能够让程序从头开始运行。在MSP430单片机,看门狗有两种工作模式,分别是看门狗模式与定时器模式。
1.0 看门狗模式
在正常操作器件,一次WDT 定时时间到,将产生一次器件复位。如果通过编制程序使WDT 定时时间稍大于程序执行一遍所用的时间,并且程序执行过程中都有对看门狗定时器清零的操作(俗称喂狗),使计数器重新计数,则程序正常执行时,就会在WDT定时时间到达之前对WDT清零,不会产生WDT溢出,如果由于干扰使程序跑飞,则不会在WDT定时时间到达之前执行WDT清零指令,WDT就会产生溢出,从而产生系统复位CPU 需用重新运行用户程序,这样程序就可以又恢复正常运行状态。下面我们来看有关看门狗的寄存器:
1.0 看门狗模式
在正常操作器件,一次WDT 定时时间到,将产生一次器件复位。如果通过编制程序使WDT 定时时间稍大于程序执行一遍所用的时间,并且程序执行过程中都有对看门狗定时器清零的操作(俗称喂狗),使计数器重新计数,则程序正常执行时,就会在WDT定时时间到达之前对WDT清零,不会产生WDT溢出,如果由于干扰使程序跑飞,则不会在WDT定时时间到达之前执行WDT清零指令,WDT就会产生溢出,从而产生系统复位CPU 需用重新运行用户程序,这样程序就可以又恢复正常运行状态。下面我们来看有关看门狗的寄存器:
- WDTCTL:看门狗控制寄存器
-
- 这个寄存器是16位的寄存器,在复位后的初始值为0x6900,。需要注意的就是WDTPW,这个是看门狗访问的安全口令,读取时总是为0x69,写入是必须是0x5A,如果不是0x5A则导致系统复位,有时我们需要人为复位系统时,我们也可以故意写错指令,则立马复位,相当于实现软复位。
- 还需要注意就是WDTSSEL位,此位是WDT的时钟源选择,置0时为SMCLK,置1时为ACLK,所以在设置时间时一定要注意时钟源的选择。
- IE1:中断使能寄存器1
-
- IFG1:中断标志寄存器1
-