Função de bitset e bitwrite na programação Arduino

Função de bitset e bitwrite na programação Arduino

Na linguagem de programação Arduino, a função bitset () e bitWrite () é usada para manipular bits individuais dentro de um byte ou outro tipo de dados. Neste artigo, exploraremos a função bitset () e bitWrite () em detalhes e discutiremos como ele pode ser usado para melhorar o desempenho e a funcionalidade de seus programas Arduino.

O que é bitset () função em arduino

A função bitset () é uma função interna na linguagem de programação Arduino que é usada para definir um bit específico dentro de um byte ou outro tipo de dados para um valor 1.

Usamos essa função onde precisamos manipular bits individuais dentro de um tipo de dados maior, pois isso permite que você faça isso de maneira rápida e fácil.

Sintaxe

A seguir, a sintaxe será seguida para a função bitset () em Arduino:

bitWrite (bytevar, bitNumber);

Ou:

bitset (x, n);

Nesta sintaxe, “x”Representa a variável que você deseja modificar e“n”Representa a parte que você deseja definir. A posição do bit é indexada zero, então o bit menos significativo é o bit 0, o segundo bit menos significativo é o bit 1 e assim por diante.

Parâmetros

Esta função pode levar dois parâmetros:

bytevar (x): Este é o valor numérico cujo valor precisamos definir.

Bytenumber (n): Ele descreve qual bit deve ser definido. Começa em 0 a partir da parte menos significativa.

Valor de retorno

A função retorna o valor modificado da variável "x".

Código de exemplo

A seguir, o código ilustra o uso da função bitset () na programação Arduino:

Void Setup ()
Serial.começar (9600);
byte x = 0b11111101; // Este é o valor constante binário indicado pelo prefixo 0b
Serial.print ("Antes:");
Serial.println (x, bin); // Imprime o valor binário original igual a 11111101
bitset (x, 1); // Esta função definirá 1 para o segundo bit
Serial.print ("depois:");
Serial.println (x, bin); // imprime o número binário após seu segundo bit definido como 1 (11111111)

void loop ()

Neste código, a função setup () inicializa a comunicação serial e define uma variável de byte x para o valor binário 0b11111101. A função bitset () é usada para definir o segundo bit (contando da direita) de x a 1. Os valores originais e modificados de x são impressos no monitor serial.

A função loop () está vazia, então o programa simplesmente funciona uma vez e depois para.

Saída

Na saída, podemos ver um segundo bit do lado esquerdo ou menos significativo é definido como 1:

O que é BitWrite () função em Arduino

A função bitWrite () permite que você escreva um valor (0 ou 1) para um bit específico em um byte de dados. Sua sintaxe, parâmetros e valor de retorno são os seguintes:

Sintaxe

Após a sintaxe será seguida pela função bitWrite () na programação Arduino:

bitwrite (bytevar, bitNumber, bitValue);

Ou:

bitWrite (x, n, b);

Parâmetros

A seguir, estão os três parâmetros que esta função leva:

bytevar (x): O byte (valor em binário) de dados onde você deseja escrever a parte.

BitNumber (n): o índice (0 a 7) ou o número de um bit menos significativo que queremos escrever no bytevar.

BitValue (B): o valor (0 ou 1) que você deseja escrever para o bit especificado.

Valor de retorno

A função bitWrite () não retorna nenhum valor, mas fornece o valor numérico modificado cujo bit é alterado.

Código de exemplo

Abaixo, o código determinado nos dá uma idéia de como a função bitWrite () funciona na programação Arduino:

Void Setup ()
Serial.começar (9600);
byte x = 0b11111101; // Este é o valor constante binário indicado pelo prefixo 0b
Serial.print ("Antes:");
Serial.println (x, bin); // 11111101
bitWrite (x, 0, 0); // Isso escreverá 0 para menos significativo (0) de x
Serial.print ("depois:");
Serial.println (x, bin); // 11111100

Void Loop ()

Neste código, a função setup () inicializa a comunicação serial e define uma variável de byte x para o valor binário 0b11111101. A função bitWrite () é usada para escrever 0 no bit menos significativo (posição de bit 0) de x. Os valores originais e modificados de x são impressos no monitor serial.

A função loop () está vazia, então o programa simplesmente funciona uma vez e depois para.

Saída

Na saída, podemos ver o bit menos significativo definido para 0 a partir de 1:

Diferença entre Bitset () e BitWrite () Função Arduino

As funções bitset () e bitWrite () são usadas na programação do Arduino para manipular bits individuais dentro de um byte de dados, mas eles têm algumas diferenças.

O bitset () exige um pouco de índice e uma referência a um byte de dados e define o bit no índice fornecido para 1.

Por exemplo, Bitset (3, Mybyte) definiria o quarto bit (contando de 0) de Mybyte a 1. Se a parte já estiver definida, bitset () não faz nada.

O bitWrite () A função exige um pouco de índice, um byte de dados e um valor (0 ou 1), e define o bit no índice fornecido ao valor fornecido.

Por exemplo, BitWrite (Mybyte, 3, 1) definiria o 4º bit de MyByte para 1. Se o parâmetro de valor for 0, "BitWrite" limpa a parte no índice fornecido.

Resumindo, bitset () é usado para definir um pouco para 1, enquanto bitWrite () é usado para definir um pouco para 0 ou 1.

Conclusão

O bitset () e o bitWrite () ambas as funções podem alterar os bits individuais dentro de uma variável. No entanto, o bitset () só pode definir o valor como 1, mas bitWrite () pode substituir os valores para 1 ou 0, dependendo do bit definido dentro do terceiro parâmetro da função. Para obter informações e exemplos mais detalhados de ambos, leia o artigo.