到底是什么原因导致单片机端口的电平检测错误呢

2019-07-15 14:01发布

本帖最后由 wcm014 于 2016-5-11 13:41 编辑

如题,楼主的这个是用PIC12F675的单片机,,GP3端口检测电平高低,如果电平发生变化,则GP4H和GP5的输出互相复制,程序如下,,#define uchar unsigned char
#define uint unsigned int

uint tiME=0;
uint DATA=0;
uint  A=0;
uint  B=0;            
uint OGP3=0;

///中间有一段遥控接收的中断处理程序,,没问题就省略了//////
void main(void)
{

while(1)
{
   if (OGP3!=GPIO3)                 //如果我屏蔽了这个if语句,其他程序就OK了,             {
         A=GPIO5;
         B=GPIO4;
         GPIO4=A;
         GPIO5=B;        OGP3=GPIO3;
       }

}
}

问题是,这段程序会发生错乱,感觉就像是GP3的电平检测错误,,if语句不断循环执行,,我确定的用示波器观察过端口GP3的电平是很稳定的4.2V,,,
怎么会这样呢,我已经仔细对着数据手册,检查了每一个寄存器了,,同样的语句,我换到12F508就没问题,,但508没中断做不了红外遥控的解码,







友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。