AVR单片机 ATmega16 读取IO口电位的奇葩问题 [2]?
哈哈好厉害 2013-04-24 08:50:35 IO状态是这样的。
DDRD=0x00;
PORTD=0x00;
按照网友的提示,程序改成了这样:
while(1)
{
if((PIND&BIT(4))==0x10)
{
PORTB&=~BIT(0); //输出一个低电平,点亮发光管。
PORTB |= BIT(4);
}
else
{
PORTB&=~BIT(4); //输出一个低电平,点亮发光管。
PORTB |= BIT(0);
}
}
无论PD4是高还是低,而且从来没有给PD4供过电压,为什么两个指示灯都是亮的呢?我用的开发板测试的。
使用仿真软件发现,即使是低电平程序莫名就跑到了 PORTB&=~BIT(0);这里。。按理说这里是高电平才会进入的,问题在哪里呢?