访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
单片机看门狗
内容导读:
       在单片机系统中,我们经常用硬狗复位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中重新初始化。

标签:
来源:无忧电子开发网 作者: 时间:2006/9/10 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐