Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个 atmel 89c2051 控制器。我想根据每个单独的寄存器位的状态来制定条件,例如:
当端口 1 位 0 为 0 时做(某事)
我试过使用 while P1_0 但编译器返回一个未声明的标识符错误。我该怎么做呢?谢谢
屏蔽您的端口变量,然后进行简单的真/假测试。例如:
while (PIND & (1<<PD1)) { // Do stuff. }
上面的代码创建了一个新的“掩码”变量,它被1转移到PD1(实际变量是0b00000010, 或0x02)的位置。AND然后使用读取的引脚编辑该“掩码” :除了您要测试的位置中的位之外,一切都变成0(因为两个位都必须是1结果)。1结果是0或大于 的某个数字0,这将true在布尔测试中计算为 。
1
PD1
0b00000010
0x02
AND
0
true