求助:关于PIC16F873A的WDT溢出复位时的STATUS的TO状态位

2020-02-09 11:40发布

最近写了一个程序,复位时根据是否是WDT溢出复位而采取不同的初始化程序.我实际测试的结果是:当WDT溢出复位时寄存器STATUS的TO位是1,而不是数据手册上的0.我用的是HiTech-PICC编译器.
以下是我的程序:

#include <htc.h>

__CONFIG(XT & WDTEN &  PWRTEN &  BOREN &  LVPDIS);

void main (void)
{
     _delay(1);

     if (POR && BOR && !TO && PD) { //是WDT溢出复位吗?
         CLRWDT();     //是,则执行看门狗指令使TO置1
         WDTResetInit();    //并执行初始化程序WDTResetInit()
    } else {      //非WDT溢出复位
         POR = 1;     //软件置位POR与BOR
         BOR = 1;
         CLRWDT();
         NonWDTResetInit();   //执行初始化程序NonWDTResetInit()
   }

   while(1); //等待WDT溢出
}

请大家帮我看下我的程序哪里出问题了,先谢谢大家了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。