【发布时间】:2015-08-05 01:12:30
【问题描述】:
data |= (1 << 3) 设置位 (3) 而不破坏其他位。 data &= ~(1 << 4) 在不中断其他位的情况下重置位 (4)。如何在一条指令中完成这两项任务?
(因为这实际上只是为了可读性,我计划#define以一种可爱的方式#define gpioHigh(x) <insert code>。另一种方法是弄清楚如何正确地将gpio指针传递给我为此专门编写的函数目的,但效果)
谢谢!
迈克
【问题讨论】:
-
Xor 是您的朋友
^运算符。仅当您想在不知道那里有什么的情况下翻转位时,这才是正确的。否则,设置和重置是确保您确实在设置和重置位的方法。 -
为什么将 GPIO 指针传递给函数时会出现问题?
-
语法不通。
标签: c bit-manipulation bitwise-operators firmware