MSP430单片机看门狗的使用
2、其中后两种模式可以选择的时钟源有:SMCLK和ACLK。
本文引用地址:https://www.eepw.com.cn/article/201611/321581.htm3、使用后两种模式时要注意单片机所处的状态下看门狗能否工作,如单片机处在LPM3时只有ACLK时钟,处在LPM4下,没有时钟可以使用。
4、看门狗模式的使用方法
当看门狗计数溢出时,程序复位。在程序中开启看门狗,在计数溢出前清空看门狗,或重置看门狗,以使其重新计数。若程序跑飞,看门狗可能没有被清空或重置,就会溢出,使程序复位。
5、MSP430F2274中,看门狗模式下可以计时最长为1s,若需要以更长的时间复位,可采取的方法,使用其他计数器,计数满后执行((void(*)())RESET_VECTOR)();或计数满后往看门狗控制寄存器写个错误值或执行一条无效命令:如((void(*)())0x170)();0x170是外围模块的一个地址,不可能是一个函数地址,所以执行此句将使程序复位。
6、看门狗的具体使用
6.1、停止模式:关闭看门狗
C语言实现:WDTCTL = WDTPW + WDTHOLD
6.2、计时器模式:作为一个计时器使用,计数器满产生中断时执行看门狗中断函数。
C语言实现:
主程序中开启看门狗计时器,如:WDTCTL = WDT_MDLY_8;
看门狗中断函数为:
#pragmavector=WDT_VECTOR
__interruptvoid wATchdog_timer(void)
{
}
6.3、看门狗模式:计数溢出时,执行复位中断函数。
C语言实现:
清看门狗:WDTCTL = WDTPW+WDTCNTCL;
设置看门狗:WDTCTL = WDT_MRST_0_5;
或WDTCTL = WDT_ARST_1000;
评论