在线情况
楼主
  • 头像
  • 级别
    • 积分6
    • 经验299
    • 文章37
    • 注册2006-06-01
    这样喂狗狗也会跑飞,高人近来看看,会养狗的
    #include "msp430x14x.h"
    void main()
    {
          int i;
          WDTCTL=WDTPW+WDTHOLD;
          BCSCTL1&=~XT2OFF;
          do
          {
                IFG1&=~OFIFG;
                for(i=0XFF;i>0;i--);
          }
          while((IFG1&OFIFG)!=0);
          BCSCTL2|=SELM1;
          BCSCTL2|=SELS;
          WDTCTL = WDT_ARST_1000;                      //开狗
          while(1)
          {
                WDTCTL = WDTPW + WDTCNTCL;             //喂狗
                unsigned int i,j;
                for(i=0;i<5;i++)
                        for(j=0;j<2000;j++);
          }
    }

    我打开的8M时钟,但是发现只要有超过几千个的软件延迟,系统就自动复位了.我开的可是1秒的看门狗啊,高手指点下为什么啊,
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 积分6
      • 经验299
      • 文章37
      • 注册2006-06-01
      DC的喂狗心得好象没有涉及到我说的情况啊,也就是我设的是1000ms的看门狗,专门测试过,一秒自动复位,没有任何问题,但是只要有超过5ms的时间不喂,它就自动复位,而不是理论的一秒,只能在程序里遍地撒狗粮才可以不跑飞,ms秒级的延迟必须在2000延迟内喂狗,否则用超过5ms的延迟就会导致复位.用几个149测试过都这样
      微控网感谢您的参与
      Powered by LeadBBS 9.2 .
      Page created in 0.0781 seconds with 6 queries.