TI中文支持网
TI专业的中文技术问题搜集分享网站

看门狗喂狗操作

请问msp430F5310的看门狗喂狗操作的同时需要设置看门狗的触发时间吗?我这样喂狗 WDTCTL = WDTPW + WDTCNTCL  后看门狗不能生效啊,但这样喂WDTCTL = WDTPW + WDTCNTCL+WDTSSEL0+WDTIS2后看门狗就能在1s重启单片机。希望高手指教一下,谢谢。

wang junzheng:

回复 Lina Lian:

那如果我这样喂狗

MOV #WDTPW+WDTCNTCL,&WDTCTL

那就应该是32ms就重启系统啊,但这样喂狗后系统就不会重启了(喂狗后我加了很长的延时3s以上,但并没有重启),这是怎么回事啊?还有就是喂狗的同时必须要重新设置看门狗时间吗?

wang junzheng:

回复 Lina Lian:

如果我这样喂狗

MOV #WDTPW+WDTCNTCL,&WDTCTL

那就应该是32ms就重启系统啊,但这样喂狗后系统就不会重启了(喂狗后我加了很长的延时3s以上,但并没有重启),这是怎么回事啊?还有就是喂狗的同时必须要重新设置看门狗时间吗?

Lina Lian:

回复 wang junzheng:

wang junzheng,你试着把你程序中的喂狗WDTCTL = WDTPW + WDTCNTCL  ,改为WDTCTL |= WDTPW + WDTCNTCL,再试试看,应该就可以32ms重启系统了。因为默认WDTIS=4 【1(1M/32k)=32ms 】,但是按照WDTCTL = WDTPW + WDTCNTCL  喂狗后,则为WDTIS=0 【1(1M/2G)=2000s 】,故在你即使延时了3s,也没有复位。你先试试看看是不是这样。

wang junzheng:

回复 Lina Lian:

改为WDTCTL |= WDTPW + WDTCNTCL后单片机根本起不来,我把看门狗时间设为16ms开机都能运行,但好像WDTCTL |= WDTPW + WDTCNTCL这个不是设置我32ms了,开机立马就重启了。

wang junzheng:

回复 Lina Lian:

我在while(1)中这样喂狗WDTCTL |= WDTPW + WDTCNTCL,但开机就重启了,一直不能上电运行;我把看门狗时间设置为WDT_ARST_16模式,16ms都能开机运行。

好像WDTCTL 不能这样操作,我WDTCTL |= WDTPW + WDTCNTCL+WDTSSEL0+WDTIS2这样设置1s也是立刻重启了,好像一喂狗就产生了puc,我推断WDTCTL 控制寄存器不能或操作,只能赋值

Delta:

您好。

这个操作可以用宏来操作,并同时会设置时间,具体可参考MSP430F5310.h的内容,例如:

#define WDTSSEL__ACLK          (1*0x0020u)    /* WDT – Timer Clock Source Select: ACLK */

/* WDT is clocked by fACLK (assumed 32KHz) */

#define WDT_ARST_1000       (WDTPW+WDTCNTCL+WDTSSEL0+WDTIS2)                         /* 1000ms  " */

Lina Lian:

回复 wang junzheng:

wang junzheng,我试了试,你说的是对的,的确不能用WDTCTL |= WDTPW + WDTCNTCL,但是我用WDTCTL = WDTPW + WDTCNTCL进行喂狗操作,是可以成功的,不过我用的是MSP430G2553。测试程序如下:

#include  <msp430g2553.h>

void main(void)

{

//  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer

 WDTCTL = WDTPW + WDTCNTCL;

 P1DIR |= 0x01;                            // Set P1.0 to output direction

 for (;;)

 {

   volatile unsigned int i;

   P1OUT ^= 0x01;                          // Toggle P1.0 using exclusive-OR

   i = 32000;                              // Delay

   do (i–);

   while (i != 0);

   WDTCTL = WDTPW + WDTCNTCL;

 }

}

wang junzheng:

回复 Lina Lian:

我用的是MSP430F5310,你这样是可以的,我是自己试出来在喂狗那要重新设置看门狗时间间隔的,但我在手册中没看到有说在喂狗时要重新设置看门狗时间间隔啊,我是初次弄单片机,对这个不是很懂,想弄明白。

赞(0)
未经允许不得转载:TI中文支持网 » 看门狗喂狗操作
分享到: 更多 (0)