bitWrite()
bitWrite(x, n, b)
Quando você precisa ligar ou desligar um bit específico dependendo de uma condição, o bitWrite() é o mais direto: você diz qual bit e qual valor (0 ou 1) quer colocar lá. É como bitSet() e bitClear() juntos num comando só.
Sintaxe
bitWrite(x, n, b);
Parâmetros
- x: a variável que será modificada (ela muda no lugar).
- n: qual bit escrever, contando a partir de 0.
- b: o valor a gravar —
0ou1.
Retorno
Na prática você usa como comando (void); o valor da variável x é alterado diretamente.
Exemplo
void setup() {
Serial.begin(9600);
byte flags = 0b00000000;
bitWrite(flags, 3, 1); // liga o bit 3
bitWrite(flags, 0, 1); // liga o bit 0
bitWrite(flags, 3, 0); // desliga o bit 3 de novo
Serial.println(flags, BIN); // imprime 1
}
void loop() {
}
Notas e cuidados
xprecisa ser uma variável (ela é modificada), não um valor constante.- Se
bfor diferente de 0 ou 1, o Arduino trata qualquer valor diferente de zero como 1.