这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机看门狗

共1条 1/1 1 跳转至

单片机看门狗

菜鸟
2008-08-02 11:45:07     打赏

单片机看门狗
在单片机系统中,我们经常用硬狗复位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)
                   {
                       /*      实际的程序代码  */
                   }

          }

 [NextPage]

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


还需要在else中重新初始化




关键词: 单片机     看门狗    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]