我有一个小问题,希望有一个简单的答案。在 C/C++ 中对 Arduino 进行编程时,行“DDRB |= 0b00101000;” 发生。虽然我知道 DDRB 是端口 B 的数据方向寄存器以及“0b00”(即插槽 13 到 9)之后数字的含义,但我仍然不知道“0b00”是什么意思。
在定义中,我只读它意味着高(而 0b11 意味着低)但这意味着什么?
完整代码:
#include <avr/io.h>
#include <util/delay.h>
int main (void) {
float seconds = 0.5;
int time = 1000 * seconds;
DDRB |= 0b00101000;
while (1) {
PORTB |= 0b00001000;
_delay_ms(time);
PORTB &= 0b11110111;
PORTB |= 0b00100000;
_delay_ms(time);
PORTB &= 0b11011111;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
0b 表示需要二进制表示的数字。
对于数据方向寄存器,将这些位设置为 1 将使相应的线路输出,设置为 0 将使其成为输入。
在DDRB |= 0b00101000将执行比特的当前值之间的二进制OR操作在DDRB与掩模。
这将导致DDRB = 0b××1×1xxx,因此这意味着DDRB将保留第 7 行和第 6 行的值。此操作基本上将第 5 行和第 3 行设置为输出,其余部分保持原样。