以下代码使用 winAVR。
我在这里得到了一个 8 位 PIN,我需要将它与 00000010 或 0x02 进行 OR 以设置第 7 位。
现在我要做的是:
- 设置端口 B 位 7
- 等待 1ms
- 清除端口 B 位 7
- 等待 19 毫秒
但是,我不应该更改这些步骤中的其他位。
所以我必须要 :
- 读取端口 B
- 需要设置位
- 将修改后的值写回端口
- 清除位
- 写回端口 B
所以我的测试代码是:
B=PINB|0x02
Loop delay for 1ms
BP=PINB&0x00
Loop for 19ms
但我认为在这个过程中其他位将被改变,我的问题是,我应该如何在不改变其他位的情况下操作 8 位端口的一位?
非常感谢 !!