gpt4 book ai didi

c - 在 8 位 PIN 中设置一位而不更改其他位

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:54 25 4
gpt4 key购买 nike

对以下代码使用 winAVR。

我在这里得到一个 8 位 PIN,我需要将它与 00000010 或 0x02 进行或操作以设置第 7 位。

现在我要做的是:

  • 设置端口 B 位 7
  • 等待1ms
  • 清除端口 B 位 7
  • 等待 19 毫秒

但是,我不应该更改这些步骤中的其他部分。

所以我必须:

  • 读取端口B
  • 需要设置位
  • 将修改后的值写回端口
  • 清除位
  • 写回端口B

所以我的测试代码是:

B=PINB|0x02
Loop delay for 1ms
BP=PINB&0x00
Loop for 19ms

但我认为在这个过程中其他位会被改变,我的问题是,我应该如何在不改变其他位的情况下操作 8 位端口的一位?

非常感谢!!

最佳答案

您需要 BP=PINB & ~0x02 ~ 运算符是逻辑非。 and 运算符只保留 2 以外的位。

关于c - 在 8 位 PIN 中设置一位而不更改其他位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com