MSP430单片机简介-理论⑤-定时器模块-WDT看门狗
上期我给大家简单介绍了MSP430环境下时钟寄存器BCSCTL2,各个位的含义以及如何设置
本期主要讲解定时器模块,先讲讲看门狗定时器及其寄存器、设置等。
1.0 定义
1.1 计时器:
MSP430 的定时器大概有 4 种类型,看门狗定时器、基本定时器、定时器 A、定时器 B、
1.2 基本计时器功能:
基本时序,支持软件及各种外围模块工作在低频和低功耗条件下
1.3 定时器A函数:
基本时序,同时支持多个时序控制,多个捕获、比较功能和多个输出波形(PWM),可支持硬件串行通信
1.4 定时器B功能:
基本计时,功能与定时器A基本相同,但比定时器A更加灵活,功能更加强大
1.5 门定时器功能:
看门狗定时器是一种特殊的定时器,它的作用是在程序发生故障时,按照一定的顺序重新启动系统。此模块也具有定时器功能。通过CNTCL控制TMSET位,使WDTCNT从0开始计数,然后根据定时选择的时间周期产生中断请求。在定时器模式下,当定时时间到达时,WDTCTL中断标志位被置位。由于此模式下定时器中断源为单一源,因此当获得中断服务时,其WDTCTL标志被复位。
2.0 看门狗定时器WDT
2.1 看门狗定时器的原理是当出现故障,并且满足规定的定时时间时,产生不可屏蔽的中断,从而使系统复位。
在实际调试中,调试程序或者预期程序可能在某一段出现瞬间的时序错误(比如外界电路干扰),此时可以利用看门狗定时器中断,防止程序进入死循环。简单来说就是当前进程开启看门狗,当程序正常后,下一个进程会关闭看门狗。但是如果此时有干扰,则不会触发下一个进程,程序就会跑飞,此时看门狗时间到了,会触发系统重启。
2.2 WSTCTL为16位寄存器,其高字节为密码,即5AH,对其进行写入时必须写入密码才能操作,否则将直接导致系统复位。
看门狗定时通过WDTCTL的低三位(SSEL、IS1、IS0)选择,当系统时钟为1MHz时,最大设置为1秒,最小设置为64微秒。
ISx(bit1-0):用于设置看门狗定时时间,00为看门狗时钟源/32768(01对应8192,10对应512,11对应64)
SSEL(bit2):这个比较简单,选择时钟源,0为SMCLK,1为ACLK,
CNTCL:该位为1时,清除计数值,并自动复位WDTCNT
TMSEL:工作模式选择,0为看门狗模式,1为定时器模式
NMI:选择RST/NMI引脚功能,该引脚在PUC之后复位。0表示RST/NMI引脚为复位端,1表示RST/NMI引脚为边沿触发不可屏蔽中断输入。
NMIES:选择中断的边沿触发模式,0为上升沿触发NMI中断,1为下降沿触发NMI中断
HOLD:停止看门狗定时器,以降低功耗。0表示激活WDT功能,1表示禁用时钟输入并停止计数。