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 — 0 ou 1.

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

  • x precisa ser uma variável (ela é modificada), não um valor constante.
  • Se b for diferente de 0 ou 1, o Arduino trata qualquer valor diferente de zero como 1.

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker