单片机看门狗

发布时间:2010-9-15 13:58    发布者:conniede
关键词: MCU , 单片机 , 看门狗
单片机系统中,我们经常用硬狗复位MCU。程序经常这样写:

data unsigned char bootflag;

if(bootflag!=0xaa)
{
/* 冷启动代码 */
}
else
{
/* 热启动代码 */
}

最近做了一个东东,发现即使系统冷启动,bootflag仍为0xaa。所以希望各位兄第做东西时,如果用到硬狗,程序中至少要用2个启动检查变量,来查看是冷启动,还是热复位。如果程序的RAM比较紧张,或者你就想用一个字节变量做标志,可以在else中这样写:

else
{
/* 根据系统用到的变量在运行时的值初始化系统 */
if(run_var==VAR_DEF_1)
{
/* 初始化1 */
}
else if(run_var==VAR_DEF_2)
{
/* 初始化2 */
}

else
{
bootflag=0x55;
soft_dog();
}
while(1)
{
/* 实际的程序代码 */
}
}

需要注意的是,单片机被硬狗复位后,外部端口和SFR将还原成默认状态。所以有些SFR

还需要在else中重新初始化。
本文地址:https://www.eechina.com/thread-26929-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表