MSP430单片机C语言编程与实践(入门篇)之十----看门狗定时器(1)

本文详细介绍了MSP430平台的看门狗定时器(WDT)功能,包括其作为看门狗和间隔定时器的工作原理,设置方法,以及在不同模式下的操作细节,如时钟保护、低功耗模式下的使用注意事项等。

       看门狗定时器是一个16位的定时器,可被用作看门狗或用作间隔定时器。

10.1 看门狗定时器(WDT)介绍

       WDT(WDT, Watchdog Timer)模块的主要功能是在一个软件问题发生后,去执行一个受控制的系统重启。如果选择的时间间隔到期了,就会产生一个系统复位。如果在一个应用中不需要看门狗功能,则看门狗模块可被设置为一个间隔定时器,而且可以在选择的时间间隔上产生中断。

       WDT模块的特点包括:

       ·四个软件可选的时间间隔

       ·看门狗模式

       ·间隔模式

       ·对WDT控制寄存器的访问是密码保护的

       ·管脚功能的控制

       ·可选的时钟源

       ·可被停止以减少功耗

       ·时钟故障保护特点

       注意:看门狗定时器上电活跃

       上电清除后,WDT模块被自动设置为看门狗模式,使用DCOCLK,初始复位间隔为32768时

       钟周期。在初始复位间隔到达前,用户必须设置或停止WDT。

10.2 看门狗定时器的操作

       通过WDTCTL寄存器,WDT模块可被设置为一个看门狗定时器或间隔定时器。WDTCTL寄存器也包含控制位来设置管脚。WDTCTL是一个16位的、密码保护的读/写寄存器。任何读写访问必须使用字命令,而且写访问必须在高字节包含写密码05Ah。任何写WDTCTL时,若其高字节不是05Ah,就会产生一安全密钥违规,并触发一个PUC(Power-Up Clear,上电清除)系统复位,不管定时器是何模式。对WDTCTL的任何读操作,在高位字节读出为069h。WDT的计数时钟应该比系统时钟(MCLK)慢些或相同。

10.2.1看门狗定时器计数器

       看门狗定时器计数器(WDTCNT)是一个16位的增计数器,软件不能直接访问。对WDTCNT的控制和时间间隔选择是通过看门狗定时器的控制寄存器WDTCTL进行的。

       WDTCNT的时钟源可来自ACLK或SMCLK,时钟源选择由WDTSSEL位确定。

10.2.2看门狗模式

       PUC状态后,WDT模块被设置为看门狗模式,使用DCOCLK,初始复位间隔为32768周期。在初始复位间隔到达前,用户程序必须设置、停止或清除WDT,否则,另一个PUC将被产生。当WDT被设置为运行于看门狗模式时,任何用不正确的密码写WDTCTL或者是选择的时间间隔到期,都会触发一个PUC。一个PUC把WDT复位到它的默认状态,并且设置管脚为复位模式。

10.2.3间隔定时器模式

       设置WDTTMSEL位为1,则选择为间隔定时器模式。这个模式可被用于提供周期性中断。在间隔定时器模式,当选择的时间间隔期满时,WDTIFG标志被置位。在间隔定时器模式,当选择的时间间隔期满时不产生PUC,并且WDTIFG使能位WDTIE保持不变。

      当WDTIE位和GIE位被置位,WDTIFG标志请求一个中断。当它的中断请求被响应以后,WDTIFG中断标志被自动复位,也可以用软件复位。间隔定时器模式的中断向量地址与看门狗模式的不同。

       注意:更改看门狗定时器

       WDT的间隔改变时要跟WDTCNTCL=1一起,在一个单一指令中完成,以避免会立刻产生一个

       意外的PUC或中断。改变时钟源前先停止WDT,以避免可能产生的错误间隔。

10.2.4 WDT中断

       WDT使用SFRs(特殊功能寄存器)中的两个位进行中断控制。

       ·WDT中断标志,WDTIFG,位于IFG1.0(IFG1为中断标志寄存器1)

       ·WDT中断使能,WDTIE,位于IE1.0(IE1为中断使能寄存器1)

       当使用WDT在看门狗模式时,WDTIFG标志源自一个复位向量中断。WDTIFG可被复位中断服务程序使用,以确定是否由看门狗引起了器件复位。如果该标志置位,则WDT产生了复位状况,其原因可能是定时时间到或者是由于安全密钥违规。如果WDTIFG是清零的,则这个复位是由一个不同的来源产生的。

       当使用WDT在间隔定时器模式时,在选择的定时间隔到达时,WDTIFG标志被置位,如果WDTIE和GIE是置位的,将会请求一个WDT间隔定时器中断。间隔定时器中断向量与用于看门狗模式的复位向量是不同的。在间隔定时器模式,当中断被服务后,WDTIFG标志会被自动复位,也可以用软件复位。

10.2.5 WDT时钟故障保护操作

       WDT模块提供了一个故障保护时钟特点,以保证在看门狗模式下,WDT的时钟不会被禁用。这意味着低功耗模式会受影响于WDT时钟的选择。例如,如果ACLK是WDT的时钟源,LPM4就实现不了,因为WDT会防止ACLK被禁用。同样,如果作为WDT的时钟源,ACLK或SMCLK失效时,WDT的时钟源会被自动地切换至MCLK。在这种情况下,如果MCLK来源于一个晶振,而且这个晶振也失效了,则故障保护特点会激活DCO,并用它作为MCLK的来源。

        当WDT模块用于间隔定时器模式时,时钟源没有故障保护特点。

10.2.6低功耗模式操作

       MSP430器件有好几个低功耗模式,不同的时钟信号可用于不同的低功耗模式。用户应用的要求和所用时钟的类型决定了怎样去设置WDT。例如,如果用户想要使用低功耗模式3(LPM3),就不能把WDT+设置成看门狗模式并且使用SMCLK作为它的时钟源,因为WDT+将保持SMCLK使能并作为它的时钟源,从而增加LPM3的电流消耗。当不需要WDT时,可用WDTHOLD位去停止看门狗计数器WDTCNT,以减少功耗。

       有关看门狗定时器的这些文字说明比较枯燥,大家随意浏览一下即可,在下一讲中我们会有许多关于看门狗定时器的例程,会有助于大家对看门狗定时器的理解和掌握。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值