uchar KEY_scan()
{
uchar temp;
PORTB = 0xfe;
DDRB = 0xff;
DDRB = 0x00;
delayms(1);
PORTB = 0xff;
if ((PINB & 0xf0) != 0xf0)
{
delayms(20);
if((PINB & 0xf0) != 0xf0)
{
temp = PINB;
}
}
return temp;
}
第二个程序,思路一样
uchar Key_scan()
{
uchar temp;
PORTB = 0xfe;
DDRB = 0x0f;
if ((PINB & 0xf0) != 0xf0)
{
delayms(20);
if((PINB & 0xf0) != 0xf0)
{
temp = PINB;
}
}
return temp;
}
两个程序算法一样,为什么第一个就不出结果呢?
我想问下两次读的 PINB 值不一样吗?
} |