在 Arduino 中清除/设置数字的特定位

arduinoarduino boardsarduino idearduino programming language

当您深入研究高级固件时,您会处理大量寄存器,这些寄存器的特定位需要根据您的使用情况进行设置或清除。Arduino 具有内置函数来执行此操作。

语法

bitSet(x, index)

并且,

bitClear(x, index)

其中 x 是必须设置/清除其位的数字,索引是位的位置(0 表示最低有效位或最右边的位)。此函数在原​​地更改数字 x,并返回更新后的 x 值。

请注意,设置一个位意味着将其值设置为 1,清除它意味着将其值设置为 0。

示例

以下示例说明了这些函数的用法 −

void setup() {
   // 将您的设置代码放在此处,运行一次:
   Serial.begin(9600);
   Serial.println();
   int x = 6;

   Serial.println(x);
   bitSet(x,0);
   Serial.println(x);
   bitClear(x,2);
   Serial.println(x);
   bitClear(x,3);
   Serial.println(x);
}

void loop() {
   // 将您的主代码放在此处,以便重复运行:
}

输出

串行监视器输出如下所示 −

如您所见,我们从数字 6 (0b0110) 开始。

然后我们设置其第 0 位,得到 (0b0111),对应于 7。

然后,我们清除其第 2 位,得到 (0b0011),对应于 3。

然后我们清除其第 3 位,已经是 0。因此,我们再次得到 (0b0011),它对应于 3。

串行监视器输出按照我们刚刚描述的确切顺序显示这些数字。


相关文章