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

WDT的喂狗操作。

在使用MSP430F449的过程中,出现问题。

看门狗不能喂狗,重复的复位。

#include <msp430.h>

 long i = 0;
void main()
{
    P5DIR |= BIT1;
    P5OUT = 0X02;
    for(i = 0x7fff; i > 1; i–);
    P5OUT = 0X00;
    WDTCTL = WDT_ARST_250;
   

    BTCTL = BT_ADLY_32;
    IE2 |= BTIE;
    _EINT();

while(1);

}

#pragma vetor = BASICTIMER_VECTOR

__interrupt void bt_isr(void)

{

             WDTCTL =WDT__ARST_250;

何解? 

为什么会重复的复位呢?

Lichen Wang:

你假定ACLK是32千赫。但事實並非如此。

MSP430F449.H says:

/* WDT is clocked by fACLK (assumed 32KHz) */#define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) /* 1000ms " */#define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms " */#define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms " */#define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms " */

 

kqian0327:

你好,

看门狗可以做为两个用途:

第一,定时器中断。

第二,看门狗复位。

如果你要求使用看门狗复位功能,不必要利用定时器中断,直接把  WDTCTL =WDT__ARST_250; 加在while(1)循环里面,这样CPU就不会复位了。

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