Funzione bitset e bitwrite nella programmazione Arduino

Funzione bitset e bitwrite nella programmazione Arduino

Nel linguaggio di programmazione Arduino, la funzione bitset () e bitwrite () viene utilizzata per manipolare singoli bit all'interno di un byte o altro tipo di dati. In questo articolo, esploreremo in dettaglio la funzione bitset () e bitwrite () e discuteremo di come può essere utilizzato per migliorare le prestazioni e le funzionalità dei programmi Arduino.

Qual è la funzione bitset () in Arduino

La funzione bitset () è una funzione integrata nel linguaggio di programmazione Arduino che viene utilizzato per impostare un bit specifico all'interno di un byte o altro tipo di dati su un valore 1.

Usiamo questa funzione in cui dobbiamo manipolare singoli bit all'interno di un tipo di dati più ampio, in quanto ti consente di farlo rapidamente e facilmente.

Sintassi

La sintassi seguente verrà seguita per la funzione bitset () in Arduino:

bitwrite (bytevar, bitnumber);

O:

bitset (x, n);

In questa sintassi, "X"Rappresenta la variabile che si desidera modificare e"N"Rappresenta il bit che vuoi impostare. La posizione del bit è indicizzata a zero, quindi il bit meno significativo è bit 0, il secondo bit meno significativo è bit 1, e così via.

Parametri

Questa funzione può richiedere due parametri:

bytevar (x): Questo è il valore numerico il cui valore dobbiamo impostare.

Bytenumber (N): Descrive quale bit deve essere impostato. Inizia a 0 dal bit meno significativo.

Valore di ritorno

La funzione restituisce il valore modificato della variabile "x".

Codice di esempio

Il seguente codice illustra l'uso della funzione bitset () nella programmazione Arduino:

void setup ()
Seriale.Inizia (9600);
byte x = 0B11111101; // Questo è un valore costante binario indicato dal prefisso 0b
Seriale.stampa ("prima:");
Seriale.println (x, bin); // stampa un valore binario originale pari a 11111101
bitset (x, 1); // Questa funzione imposterà 1 su secondo bit
Seriale.print ("dopo:");
Seriale.println (x, bin); // stampa il numero binario dopo il suo 2 ° bit impostato su 1 (11111111)

void loop ()

In questo codice, la funzione setup () inizializza la comunicazione seriale e imposta una variabile byte x sul valore binario 0B11111101. La funzione bitset () viene utilizzata per impostare il secondo bit (contando da destra) di x a 1. I valori originali e modificati di X sono stampati sul monitor seriale.

La funzione Loop () è vuota, quindi il programma funziona semplicemente una volta e poi si ferma.

Produzione

In output possiamo vedere un secondo bit dal lato sinistro o meno significativo è impostato su 1:

Qual è la funzione bitwrite () in Arduino

La funzione bitwrite () consente di scrivere un valore (0 o 1) a un bit specifico in un byte di dati. La sua sintassi, parametri e valore di restituzione sono i seguenti:

Sintassi

La sintassi seguente sarà seguita dalla funzione BitWrite () nella programmazione Arduino:

bitwrite (bytevar, bitnumber, bitvalue);

O:

bitwrite (x, n, b);

Parametri

Di seguito sono riportati i tre parametri che questa funzione prende:

bytevar (x): Il byte (valore in binario) dei dati in cui si desidera scrivere il bit.

Bitnumber (N): L'indice (da 0 a 7) o il numero da bit meno significativi che vogliamo scrivere nel bytevar.

BitValue (B): Il valore (0 o 1) che si desidera scrivere al bit specificato.

Valore di ritorno

La funzione bitwrite () non restituisce alcun valore ma fornisce il valore numerico modificato il cui bit viene modificato.

Codice di esempio

Il codice indicato di seguito ci dà un'idea di come funziona la funzione bitwrite () nella programmazione Arduino:

void setup ()
Seriale.Inizia (9600);
byte x = 0B11111101; // Questo è un valore costante binario indicato dal prefisso 0b
Seriale.stampa ("prima:");
Seriale.println (x, bin); // 11111101
bitwrite (x, 0, 0); // questo scriverà da 0 a bit meno significativo (0) di x
Seriale.print ("dopo:");
Seriale.println (x, bin); // 11111100

void loop ()

In questo codice, la funzione setup () inizializza la comunicazione seriale e imposta una variabile byte x sul valore binario 0B11111101. La funzione bitwrite () viene utilizzata per scrivere 0 al bit meno significativo (posizione bit 0) di x. I valori originali e modificati di X sono stampati sul monitor seriale.

La funzione Loop () è vuota, quindi il programma funziona semplicemente una volta e poi si ferma.

Produzione

In output possiamo vedere il bit meno significativo impostato su 0 da 1:

Differenza tra Bitset () e BitWrite () Arduino Function

Le funzioni BitSet () e BitWrite () sono entrambe utilizzate nella programmazione Arduino per manipolare singoli bit all'interno di un byte di dati, ma hanno alcune differenze.

IL bitset () Prende un indice di bit e un riferimento a un byte di dati e imposta il bit all'indice dato su 1.

Per esempio, Bitset (3, Mybyte) imposterà il 4 ° bit (contando da 0) di Mybyte a 1. Se il bit è già impostato, Bitset () non fa nulla.

IL bitwrite () La funzione prende un indice di bit, un byte di dati e un valore (0 o 1) e imposta il bit sull'indice dato sul valore dato.

Per esempio, bitwrite (mybyte, 3, 1) avrebbe impostato il 4 ° bit di Mybyte su 1. Se il parametro del valore è 0, "bitwrite" cancella il bit all'indice dato.

In sintesi, bitset () viene utilizzato per impostare un po 'su 1, Mentre bitwrite () viene utilizzato per impostare un po 'su 0 o 1.

Conclusione

Il bitset () e bitwrite () entrambe le funzioni possono cambiare i singoli bit all'interno di una variabile. Tuttavia, il bitset () può impostare il valore solo su 1 ma bitwrite () può sovrascrivere i valori su 1 o 0 a seconda del bit definito all'interno del terzo parametro della funzione. Per approfondimenti più dettagliati ed esempi di entrambi leggi l'articolo.