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