51复位难道不是从程序开始处执行吗?看看这现象

2020-02-05 09:12发布

本帖最后由 zuu0 于 2012-5-31 17:31 编辑

void main()
{
  启动画面
  延时2秒
  
  其它功能初始化
  开看门狗  //1秒 小于上面的延时 stc  WOD_CONr=0X3C
  while(1)
  {
    ........
   喂狗       
  }

}


现象: 正常上电启动,程序正常,每次上电都工作正常

按下复位键:启动画面 一直在闪烁,也就是没有喂狗。

为什么???按复位键后和上电 程序难道还不是从一个地方开始执行?

在延时2秒那段程序里不断喂狗,工作正常。郁闷啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
BXAK
2020-02-06 00:09
zuu0 发表于 2012-6-1 08:03
程序开始关狗,没用,。试过了

大师有空试一下,好像都是这样,我想不明白,吃不好,睡不好

前面说错了,看门狗启动后软件无法关闭,
修改如下

void main(void)
{
     WDT_CONTR = 0x35;           //启动看门狗,2.2s @ 11.0592M,空闲不计数
     LCMInit();                             //LCM初始化,即LCD模块初始化
     WDT_CONTR |= 0x10;          //清看门狗
     Start();                                //程序起动画面
     WDT_CONTR |= 0x10;          //清看门狗

     while(1)
     {
          DisplayListChar(0, 0, "ABCDEF0123456789",16);
          DelayNms(10);
          WDT_CONTR |= 0x10;          //清看门狗
     }
}

一周热门 更多>