我正在编写一个 atmel 89c2051 控制器。我想根据每个寄存器位的状态制定条件,例如:
做(某事),而端口 1 位 0 为 0
我尝试使用 while P1_0但编译器返回未声明的标识符错误。我该怎么做呢?谢谢
屏蔽端口变量,然后执行简单的真/假测试。例如:
while (PIND & (1<<PD1))
{
// Do stuff.
}
上面的代码创建了一个新的"mask"变量,该变量1
移动到PD1
的位置(实际变量是0b00000010
或0x02
)。然后AND
该"掩码"并读取引脚:一切都变得0
(因为必须1
两个位才能1
结果),除了您正在测试的位置的位。结果要么是0
个,要么是某个大于0
的数字,这将在布尔测试中计算为true
。