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

MSP430FR6972 看门狗不能重新启动程序

使用WDTCTL = WDT_ARST_1000;设置了看门狗,主循环里WDTCTL = WDT_ARST_1000;喂狗,程序正常工作;
当把主循环喂狗去掉,程序死掉,没有重启,WDTCTL时钟源由ACLK变为默认的SMCLK了,不明白为什么不重新启动

zhankui wang:

回复 Susan Yang:

使用下面的程序测试是没有问题的,包括重启
实际程序还有很多,看门狗部分和下面一样,涉及到看门狗定时器的也只是时钟源ACLK(32.768K)、SCLK(16M)
系统初始化ACLK我使用的外部时钟32.768K
当我把喂狗部分注释掉,完成的程序就不能重启了,一直卡在一个地方
//===========================================================================
void main()
{ WDTCTL = WDTPW + WDTHOLD;//关闭看门狗Sys_Init();//系统初始化Io_Init();Watchdog_Timer_Init ( ); while ( 1 ){P3OUT ^= BIT0 + BIT1 + BIT2;/lLEDdelay_ms(300);Watchdog_Timer_Init ( );//喂狗}
}
//==============================================
void Watchdog_Timer_Init ( void )
{WDTCTL = WDT_ARST_1000;
}

Hao Mengzhen:

回复 zhankui wang:

能debug看下卡在哪里吗

灰小子:

回复 zhankui wang:

建议先看看卡在哪里了

你在main函数里第一行WDTCTL = WDTPW + WDTHOLD,已经关闭看门狗了。

zhankui wang:

回复 灰小子:

下边Watchdog_Timer_Init ( );还会再打开

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR6972 看门狗不能重新启动程序
分享到: 更多 (0)