【MSP430F149学习】枯燥的看门狗
看门狗概述
看门狗定时器实际上是一个特殊的定时器,它的功能是当程序运行发生故障时能使系统从新启动
其原理就是发生的故障的时间满足规定的定时时间后产生一个不可屏蔽中断使系统复位这样当在调试
程序或预计程序运行在某段内部可能瞬时发生时序错误(如外部电路干扰)选用设置看门狗定时器中
断可以避免程序跑飞。看门狗定时时间可以通过看门狗控制寄存器【WDTCTL】中的低三位(SSEL
IS1、IS0)选择,当系统时钟为1MHz时,最大可设置为1秒钟,最小可设置64微妙。
【WDTCTL】是一个16位的寄存器,其高字节为口令,口令为【5AH】,当对它写入操作时必须写
口令才能操作,否则会导致系统复位。
另外该模块还具有定时器的功能。可通过【TMSET】位进行选择。可通过设置【CNTCL】位来使
【WDTCNT】从0开始计数。其定时器是按选定的时间周期产生中断请求。
当 WDT 工作在定时模式时,【WTDCTL】中断标志位在定时时间到时置位,因该模式下定时器中
断源是单源的,当得到中断服务时其【WDTCTL】标志位复位。
与之相关的寄存器
WDTCTL 看门狗控制寄存器
WDTCTL 由两部分组成:高 8 位是对 WDT 操作的控制命令。要写入操作【WDT】的控制命令
出于安全原因必须先正确写入高字节看门狗口令。口令位 5AH,如果口令写错将导致系统复位。读
WDTCTL 时,不需要口令,可直接读取地址 120H 中的内容,读出数据低字节位 WDTCTL 的值,高
字节始终位 69H。WDTCTL 除了看门狗定时器的控制位之外,还有两个用于设置 NMI 引脚功能。
WDTISx:选择看门狗定时器的计时输出
其中 T 是 WDTCNT 的输入时钟源周期。
0T×2
15
1T×2
13
2T×2
9
3T×2
6
WDTSSEL:选择 WDTCNT 的时钟源
0 SMCLK
1 ACLK
由 WDTISx 及 WDTSSEL 位便可确定 WDT 定时时间, 因此通过软件对计数器设置不同的初
始值就可实现不同时间的定时。与其他定时器不同之处在于,WDT 最多只能定时 8 种和时钟源相
关的时间。
下表列出了 WDT 可选的定时时间(晶振为 32.768KHz,SMCLK=1MHz)
WDTCNTCL:看门狗计数器清零位
0: 无操作
1: 将 WDTCTL 的值清零
当该位为 1 时,清除 WDTCNT。
WDTTMSEL:工作模式选择
0 看门狗模式;
1 定时器模式。
WDTNMI:选择 RST/NMI 引脚功能(在 PUC 后被复位)
0 RST/NMI 引脚为复位端;
1 RST/NMI 引脚为边沿触发的非屏蔽中断输入。
WDTNMIES:选择中断的边沿触发方式
0 WDT 功能激活;
1 时钟禁止输入,计数停止。
WDTHOLD:停止看门狗计数器
0 WDT 功能激活
1 时钟禁止输入,计数停止
WDTCNT 看门狗计数器
【WDTCNT】 时 16 位增计数器,增计数模式。
IE1 中断允许寄存器
WDTIE:看门狗定时器模式中断允许控制位
0 看门狗定时器中断禁止
1 看门狗定时器中断允许
NMIIE:非屏蔽中断允许控制位
0 禁止非屏蔽中断
1 允许非屏蔽中断
IFG1 中断标志寄存器1
WDTIFG:看门狗定时器模式中断标志
0 无看门狗定时器中断标志
1 有看门狗定时器中断标志
NMIIFG:非屏蔽中断标志
0 无非屏蔽中断标志
1 有非屏蔽中断标志
看门狗工作模式解析
看门狗模式
由于在上电复位或系统复位时,WDTCNT 和 WDTCL 两寄存器内容被全部清除(晶振为 32768Hz,SMCLK=
1MHz):复位后,工作在看门狗模式,以 ACLK 为时钟,WDT 定时时间为 32ms。
上述情况将导致 WDT 的运行自动进入看门狗模式。所以,用户软件一般都需要进行如下操作:
* 进行 WDT 的初始化:设置合适的时间(通过 SSEL、IS0、IS1 位来选定) 。
* 周期性的对 WDTCNT 清零:防止 WDT 溢出,保证 WDT 的正确使用。
* 在看门狗模式下,如果计数器超过了定时时间,就会产生复位和激活系统上电清除信号,系统
* 从上电复位的地址重启动。
* 如果系统不用看门狗功能,应该在程序开始处禁止看门狗功能。
定时器模式
WDTCTL 的 WDTTMSEL 位置位选择定时器模式。这一模式产生选定时间的周期性中断。定时时间可以通
过 WDTCTL 的 WDTCNCTL 位置位来开始。
* 改变定时时间而不同时清除 WDTCNT 将导致不可预料的系统立即复位或中断。定时时间可以通过
WDTCTL 的 CNCTL 位置位来开始。
* 如果先后分别进行清除和定时时间选择,则可能立即引起不可预料的系统复位或中断。
* 另外,在终场工作时。改变时钟源可能导致 WDTCNT 额外的计数时钟。
低功耗模式
当系统不需要 WDT 做看门狗和定时器时,可关闭 WDT 以减小功耗。控制位 WDTHOLD=1 时关闭 WDT
这时看门狗停止工作。
【MSP430F149学习】汇总贴
|