大家好、
问候!!!
我的任务是在微控制器停止时将其复位、因为我使用的是看门狗计时器、
我将看门狗时间周期设置为1sec、并每200ms 清除一次 WDD、因为我正在使用计时器、因此 WDD 不会每1sec 复位一次、
我写了代码、我想检查程序、所以我添加了 while (1);程序在这里暂停、WDT 不会复位微控制器、
我的计划持续 while (1);问题是什么、我做了什么错? 请指导我如何解决该问题。 我在下面提到了我的代码供您参考。
#include "msp430g2553.h"
unsigned int Timer1ms=0;
unsigned int count=0;
void Timer_Init();
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;// Stop the WDT to prevent reset // Count value for delay
Timer_Init();
WDTCTL = WDT_ARST_1000; // 1 sec watchdog interval
while(1)
{
// WDTCTL = WDT_ARST_1000;
count++;
if(count>5000)
{
while(1);
count=0;
}
}
}
void Timer_Init()
{
DCOCTL = CALDCO_8MHZ;
BCSCTL1 = CALBC1_8MHZ;
TA0CCTL0=CCIE;
TA0CTL=TASSEL_2+MC_1+ID_3;//SMCLK, Up mode, Divider -->1
TA0CCR0=999;//from above calculation
_BIS_SR(GIE);//off CPU until interrupt occurs
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
Timer1ms++;
if(Timer1ms>=200)
{
WDTCTL = WDTPW + WDTHOLD + WDTCNTCL;// Stop WDT
WDTCTL = WDT_ARST_1000; //again 1sec reload
Timer1ms=0;
}
}
提前感谢!!
此致、
Aravinth K.