Función de bitset y bitwrite en la programación de Arduino

Función de bitset y bitwrite en la programación de Arduino

En el lenguaje de programación Arduino, la función Bitset () y BitWrite () se usa para manipular bits individuales dentro de un byte u otro tipo de datos. En este artículo, exploraremos la función bitset () y bitwrite () en detalle y discutiremos cómo se puede utilizar para mejorar el rendimiento y la funcionalidad de sus programas Arduino.

¿Qué es la función bitset () en arduino?

La función bitset () es una función incorporada en el lenguaje de programación de Arduino que se utiliza para establecer un bit específico dentro de un byte u otro tipo de datos a un valor 1.

Utilizamos esta función donde necesitamos manipular bits individuales dentro de un tipo de datos más grande, ya que le permite hacerlo rápida y fácilmente.

Sintaxis

La siguiente sintaxis se seguirá para la función bitset () en Arduino:

bitwrite (bytevar, bitNumber);

O:

bitset (x, n);

En esta sintaxis, "X"Representa la variable que desea modificar, y"norte"Representa el bit que desea establecer. La posición de bit es de índice cero, por lo que el bit menos significativo es el bit 0, el segundo bit menos significativo es el bit 1, y así sucesivamente.

Parámetros

Esta función puede tomar dos parámetros:

Bytevar (x): Este es el valor numérico cuyo valor necesitamos establecer.

bytenumber (n): Describe qué bit se debe establecer. Comienza en 0 desde el bit menos significativo.

Valor de retorno

La función devuelve el valor modificado de la variable "x".

Código de ejemplo

El siguiente código ilustra el uso de la función bitset () en la programación Arduino:

setup () void
De serie.comenzar (9600);
byte x = 0b11111101; // Este es un valor constante binario indicado por el prefijo 0b
De serie.imprimir ("antes:");
De serie.println (x, bin); // Imprime un valor binario original igual a 11111101
bitset (x, 1); // Esta función establecerá 1 a segundo bit
De serie.imprimir ("después:");
De serie.println (x, bin); // Imprime el número binario después de su segundo conjunto de bits en 1 (11111111)

bucle void ()

En este código, la función Setup () inicializa la comunicación en serie y establece una variable de byte x en el valor binario 0b11111101. La función bitset () se usa para establecer el segundo bit (contando desde la derecha) de x a 1. Los valores originales y modificados de x se imprimen en el monitor en serie.

La función Loop () está vacía, por lo que el programa simplemente se ejecuta una vez y luego se detiene.

Producción

En la salida podemos ver que un segundo bit desde el lado izquierdo o menos significativo se establece en 1:

¿Qué es la función bitwrite () en arduino?

La función bitwrite () le permite escribir un valor (0 o 1) a un bit específico en un byte de datos. Su sintaxis, parámetros y valor de retorno son los siguientes:

Sintaxis

La siguiente sintaxis será seguida por la función BitWrite () en la programación Arduino:

bitwrite (bytevar, bitNumber, bitValue);

O:

bitwrite (x, n, b);

Parámetros

Los siguientes son los tres parámetros que toma esta función:

Bytevar (x): El byte (valor en binario) de datos donde desea escribir el bit.

bitNumber (n): el índice (0 a 7) o el número de bit menos significativo que queremos escribir en el bytevar.

BitValue (b): el valor (0 o 1) que desea escribir en el bit especificado.

Valor de retorno

La función bitwrite () no devuelve ningún valor, pero proporciona el valor numérico modificado cuyo bit se cambia.

Código de ejemplo

A continuación, el código dado nos da una idea de cómo funciona la función bitwrite () en la programación de Arduino:

setup () void
De serie.comenzar (9600);
byte x = 0b11111101; // Este es un valor constante binario indicado por el prefijo 0b
De serie.imprimir ("antes:");
De serie.println (x, bin); // 11111101
bitwrite (x, 0, 0); // Esto escribirá 0 a un bit menos significativo (0) de x
De serie.imprimir ("después:");
De serie.println (x, bin); // 11111100

bucle void ()

En este código, la función Setup () inicializa la comunicación en serie y establece una variable de byte x en el valor binario 0b11111101. La función bitwrite () se usa para escribir 0 a la bit menos significativa (posición de bit 0) de x. Los valores originales y modificados de x se imprimen en el monitor en serie.

La función Loop () está vacía, por lo que el programa simplemente se ejecuta una vez y luego se detiene.

Producción

En la salida podemos ver el bits menos significativo establecido en 0 de 1:

Diferencia entre la función bitset () y bitwrite () arduino

Las funciones bitset () y bitwrite () se usan en la programación de Arduino para manipular bits individuales dentro de un byte de datos, pero tienen algunas diferencias.

El bitset () toma un índice de bit y una referencia a un byte de datos y establece el bit en el índice dado en 1.

Por ejemplo, bitset (3, mybyte) establecería el cuarto bit (contando de 0) de mybyte a 1. Si el bit ya está configurado, bitset () no hace nada.

El bitwrite () La función toma un índice de bit, un byte de datos y un valor (ya sea 0 o 1), y establece el bit en el índice dado al valor dado.

Por ejemplo, bitwrite (mybyte, 3, 1) establecería el cuarto bit de mybyte en 1. Si el parámetro de valor es 0, "bitwrite" borra el bit en el índice dado.

En resumen, bitset () se usa para establecer un poco en 1, mientras bitwrite () se usa para establecer un poco en 0 o 1.

Conclusión

El bitset () y bitwrite () ambas funciones pueden cambiar los bits individuales dentro de una variable. Sin embargo, el bitset () solo puede establecer el valor en 1 pero BitWrite () puede sobrescribir los valores en 1 o 0 dependiendo del bit definido dentro del tercer parámetro de la función. Para obtener una visión más detallada y ejemplos de ambos, lea el artículo.