0

我正在尝试从 c8051f040 控制器读取两个引脚。

直接读取端口可以工作,但是即使调试器显示正确的值,将相同的端口值保存到变量也不起作用。

// This works
if((P1 & 0xF0) == 0xa0) 
{   
    YEL_LED = 1;            //Turn on
}
else
{
    YEL_LED = 0;            //Turn off
}

// This does not work even though the debugger 
// shows the correct value 0xa0 for the var
ORange = (P1 & 0xF0);
if(ORange == 0xa0)          
{
    YEL_LED = 1;            //Turn on
}
else
{
    YEL_LED = 0;            //Turn off
}   

这是一个 KEIL c51 错误还是正在优化的东西。

4

1 回答 1

0

该变量被声明为带符号的 char。它应该是未签名的。

我被显示监视变量为无符号的调试器所迷惑。

于 2015-03-24T17:59:50.530 回答