【MSP430F149学习】枯燥的看门狗
看门狗概述
看门狗定时器实际上是一个特殊的定时器,它的功能是当程序运行发生故障时能使系统从新启动
其原理就是发生的故障的时间满足规定的定时时间后产生一个不可屏蔽中断使系统复位这样当在调试
程序或预计程序运行在某段内部可能瞬时发生时序错误(如外部电路干扰)选用设置看门狗定时器中
断可以避免程序跑飞。看门狗定时时间可以通过看门狗控制寄存器【WDTCTL】中的低三位(SSEL
IS1、IS0)选择,当系统时钟为1MHz时,最大可设置为1秒钟,最小可设置64微妙。
【WDTCTL】是一个16位的寄存器,其高字节为口令,口令为【5AH】,当对它写入操作时必须写
口令才能操作,否则会导致系统复位。
另外该模块还具有定时器的功能。可通过【TMSET】位进行选择。可通过设置【CNTCL】位来使
【WDTCNT】从0开始计数。其定时器是按选定的时间周期产生中断请求。
当 WDT 工作在定时模式时,【WTDCTL】中断标志位在定时时间到时置位,因该模式下定时器中
断源是单源的,当得到中断服务时其【WDTCTL】标志位复位。
与之相关的寄存器
WDTCTL 看门狗控制寄存器
[attach]33520[/attach]
WDTCTL 由两部分组成:高 8 位是对 WDT 操作的控制命令。要写入操作【WDT】的控制命令
出于安全原因必须先正确写入高字节看门狗口令。口令位 5AH,如果口令写错将导致系统复位。读
WDTCTL 时,不需要口令,可直接读取地址 120H 中的内容,读出数据低字节位 WDTCTL 的值,高
字节始终位 69H。WDTCTL 除了看门狗定时器的控制位之外,还有两个用于设置 NMI 引脚功能。
1 ACLK
由 WDTISx 及 WDTSSEL 位便可确定 WDT 定时时间, 因此通过软件对计数器设置不同的初
始值就可实现不同时间的定时。与其他定时器不同之处在于,WDT 最多只能定时 8 种和时钟源相
关的时间。
下表列出了 WDT 可选的定时时间(晶振为 32.768KHz,SMCLK=1MHz)
[attach]33521[/attach]
1 时钟禁止输入,计数停止
WDTCNT 看门狗计数器
[attach]33522[/attach]
【WDTCNT】 时 16 位增计数器,增计数模式。
IE1 中断允许寄存器
[attach]33523[/attach]
IFG1 中断标志寄存器1
[attach]33524[/attach]
看门狗工作模式解析
由于在上电复位或系统复位时,WDTCNT 和 WDTCL 两寄存器内容被全部清除(晶振为 32768Hz,SMCLK=
1MHz):复位后,工作在看门狗模式,以 ACLK 为时钟,WDT 定时时间为 32ms。
* 如果系统不用看门狗功能,应该在程序开始处禁止看门狗功能。
定时器模式
WDTCTL 的 WDTTMSEL 位置位选择定时器模式。这一模式产生选定时间的周期性中断。定时时间可以通
过 WDTCTL 的 WDTCNCTL 位置位来开始。
* 另外,在终场工作时。改变时钟源可能导致 WDTCNT 额外的计数时钟。
低功耗模式
当系统不需要 WDT 做看门狗和定时器时,可关闭 WDT 以减小功耗。控制位 WDTHOLD=1 时关闭 WDT
这时看门狗停止工作。
【MSP430F149学习】汇总贴
欢迎光临 烽火社区 (http://bbs.cnecport.com/) | Powered by Discuz! X3.2 |