Fonction Bitset et Bitwrite dans la programmation Arduino

Fonction Bitset et Bitwrite dans la programmation Arduino

Dans le langage de programmation Arduino, la fonction BitSet () et BitWrite () est utilisée pour manipuler des bits individuels dans un octet ou un autre type de données. Dans cet article, nous explorerons en détail la fonction bitset () et bitwrite () et discuterons de la façon dont il peut être utilisé pour améliorer les performances et les fonctionnalités de vos programmes Arduino.

Quelle est la fonction bitset () dans Arduino

La fonction bitset () est une fonction intégrée dans le langage de programmation Arduino qui est utilisée pour définir un bit spécifique dans un octet ou un autre type de données sur une valeur 1.

Nous utilisons cette fonction où nous devons manipuler des bits individuels dans un type de données plus grand, car il vous permet de le faire rapidement et facilement.

Syntaxe

La syntaxe suivante sera suivie pour la fonction bitset () dans Arduino:

BitWrite (bytevar, bitnumber);

Ou:

Bitset (x, n);

Dans cette syntaxe, "X»Représente la variable que vous souhaitez modifier, et«n"Représente le bit que vous souhaitez définir. La position du bit est indexée zéro, donc le bit le moins significatif est le bit 0, le deuxième bit le moins significatif est le bit 1, et ainsi de suite.

Paramètres

Cette fonction peut prendre deux paramètres:

Bytevar (x): C'est la valeur numérique dont nous devons définir la valeur.

partenumber (n): Il décrit quel bit doit être réglé. Il commence à 0 parmi le bit le moins significatif.

Valeur de retour

La fonction renvoie la valeur modifiée de la variable «x».

Exemple de code

Le code suivant illustre l'utilisation de la fonction bitset () dans la programmation Arduino:

void setup()
En série.commencer (9600);
octet x = 0b11111101; // c'est une valeur constante binaire indiquée par le préfixe 0b
En série.print ("avant:");
En série.println (x, bac); // imprime la valeur binaire d'origine égale à 11111101
Bitset (x, 1); // Cette fonction définira 1 à deuxième bit
En série.print ("After:");
En série.println (x, bac); // imprime le numéro binaire après son 2ème bit réglé sur 1 (11111111)

void loop ()

Dans ce code, la fonction Configuration () initialise la communication série et définit une variable d'octet x à la valeur binaire 0b11111101. La fonction bitset () est utilisée pour définir le deuxième bit (compter à partir de la droite) de x à 1. Les valeurs d'origine et modifiées de x sont imprimées au moniteur en série.

La fonction Loop () est vide, donc le programme s'exécute simplement une fois puis s'arrête.

Sortir

En sortie, nous pouvons voir un deuxième bit du côté gauche ou le côté le moins significatif est défini sur 1:

Qu'est-ce que la fonction BitWrite () dans Arduino

La fonction bitwrite () vous permet d'écrire une valeur (0 ou 1) à un bit spécifique dans un octet de données. Sa syntaxe, ses paramètres et sa valeur de retour sont les suivants:

Syntaxe

La syntaxe suivante sera suivie de la fonction BitWrite () dans la programmation Arduino:

BitWrite (bytevar, bitnumber, bitValue);

Ou:

BitWrite (x, n, b);

Paramètres

Voici les trois paramètres que prend cette fonction:

Bytevar (x): l'octet (valeur en binaire) des données où vous souhaitez écrire le bit.

Bitnumber (n): L'index (0 à 7) ou le nombre d'un bit le moins significatif que nous voulons écrire dans l'octet.

BitValue (b): la valeur (0 ou 1) que vous souhaitez écrire dans le bit spécifié.

Valeur de retour

La fonction bitwrite () ne renvoie aucune valeur mais elle donne la valeur numérique modifiée dont le bit est modifié.

Exemple de code

Ci-dessous, le code nous donne une idée de la façon dont la fonction BitWrite () fonctionne dans la programmation Arduino:

void setup()
En série.commencer (9600);
octet x = 0b11111101; // c'est une valeur constante binaire indiquée par le préfixe 0b
En série.print ("avant:");
En série.println (x, bac); // 11111101
BitWrite (x, 0, 0); // Cela écrira 0 à un bit le moins significatif (0) de x
En série.print ("After:");
En série.println (x, bac); // 11111100

VOID LOOP ()

Dans ce code, la fonction Configuration () initialise la communication série et définit une variable d'octet x à la valeur binaire 0b11111101. La fonction bitwrite () est utilisée pour écrire 0 au bit le moins significatif (position bit 0) de x. Les valeurs d'origine et modifiées de x sont imprimées au moniteur en série.

La fonction Loop () est vide, donc le programme s'exécute simplement une fois puis s'arrête.

Sortir

En sortie, nous pouvons voir le bit le moins significatif réglé sur 0 à partir de 1:

Différence entre BitSet () et BitWrite () Fonction Arduino

Les fonctions BitSet () et BitWrite () sont toutes deux utilisées dans la programmation Arduino pour manipuler des bits individuels dans un octet de données, mais ils ont quelques différences.

Le bitset () prend un index un peu et une référence à un octet de données et définit le bit à l'index donné à 1.

Par exemple, Bitset (3, Mybyte) définirait le 4ème bit (comptant à partir de 0) de Mybyte à 1. Si le bit est déjà défini, BitSet () ne fait rien.

Le bitwrite () La fonction prend un index bit, un octet de données et une valeur (0 ou 1), et définit le bit à l'index donné à la valeur donnée.

Par exemple, Bitwrite (Mybyte, 3, 1) définirait le 4ème morceau de Mybyte sur 1. Si le paramètre de valeur est 0, «Bitwrite» efface le bit à l'index donné.

En résumé, bitset () est utilisé pour régler un peu sur 1, alors que BitWrite () est utilisé pour définir un peu sur 0 ou 1.

Conclusion

Les fonctions BitSet () et BitWrite () peuvent modifier les bits individuels dans une variable. Cependant, le BitsEt () ne peut définir la valeur que sur 1 mais BitWrite () peut écraser les valeurs sur 1 ou 0 en fonction du bit défini à l'intérieur du troisième paramètre de la fonction. Pour plus d'informations plus détaillées et des exemples des deux lisez l'article.