Bitset- und Bitwrite -Funktion in der Arduino -Programmierung

Bitset- und Bitwrite -Funktion in der Arduino -Programmierung

In der Arduino -Programmiersprache wird die Funktion bitset () und bitwrite () verwendet, um einzelne Bits innerhalb eines Byte- oder anderen Datentyps zu manipulieren. In diesem Artikel werden wir die Funktion bitset () und bitwrite () im Detail untersuchen und diskutieren, wie sie verwendet werden kann, um die Leistung und Funktionalität Ihrer Arduino -Programme zu verbessern.

Was ist BitSet () -Funktion in Arduino

Die Funktion bitset () ist eine integrierte Funktion in der Arduino-Programmiersprache, mit der ein bestimmtes Bit innerhalb eines Byte oder eines anderen Datentyps auf einen Wert 1 festgelegt wird.

Wir verwenden diese Funktion, in der wir einzelne Bits innerhalb eines größeren Datentyps manipulieren müssen, da Sie dies schnell und einfach tun können.

Syntax

Die folgende Syntax wird für die BitSet () -Funktion in Arduino befolgt:

bitwrite (bytevar, bitNumber);

Oder:

Bitset (x, n);

In dieser Syntax “,“X"Repräsentiert die Variable, die Sie ändern möchten, und"N”Repräsentiert das Bit, das Sie einstellen möchten. Die Bitposition ist Null-Indexed, so dass das am wenigsten signifikante Bit 0 ist, das zweitgrößte Bit ist Bit 1 und so weiter.

Parameter

Diese Funktion kann zwei Parameter erfolgen:

Bytevar (x): Dies ist der numerische Wert, dessen Wert wir festlegen müssen.

Bytenumber (n): Es beschreibt, welches Bit eingestellt werden soll. Es beginnt bei 0 aus dem am wenigsten bedeutenden Bit.

Rückgabewert

Die Funktion gibt den geänderten Wert der Variablen „x“ zurück.

Beispielcode

Der folgende Code zeigt die Verwendung der Funktion bitset () in der Arduino -Programmierung:

void setup ()
Serie.Beginnen Sie (9600);
Byte x = 0b11111101; // Dies ist binärer konstanter Wert, der durch 0B -Präfix angegeben ist
Serie.print ("vor:");
Serie.println (x, bin); // druckt den ursprünglichen Binärwert gleich 11111101
Bitset (x, 1); // Diese Funktion wird 1 auf das zweite Bit einstellen
Serie.print ("nach:");
Serie.println (x, bin); // druckt die Binärzahl nach dem 2. Bit auf 1 (11111111)

void Loop ()

In diesem Code initialisiert die Funktion Setup () die serielle Kommunikation und legt eine Byte -Variable X auf den Binärwert 0B111111101 fest. Die Funktion bitset () wird verwendet, um das zweite Bit (von rechts) von x auf 1 festzulegen. Die ursprünglichen und modifizierten Werte von x werden auf den Serienmonitor gedruckt.

Die Loop () -Funktion ist leer, sodass das Programm einfach einmal ausgeführt wird und dann stoppt.

Ausgang

In der Ausgabe können wir ein zweites Bit von links oder die am wenigsten signifikante Seite auf 1 einstellen:

Was ist Bitwrite () -Funktion in Arduino

Mit der Funktion bitwrite () ermöglicht es Ihnen, einen Wert (0 oder 1) in ein bestimmtes Bit in einem Daten -Byte zu schreiben. Seine Syntax, Parameter und Rückgabewert sind wie folgt:

Syntax

Die folgende Syntax folgt von Bitwrite () -Funktion in der Arduino -Programmierung:

bitwrite (bytevar, bitnumber, bitvalue);

Oder:

Bitwrite (x, n, b);

Parameter

Im Folgenden sind die drei Parameter aufgeführt, die diese Funktion nimmt:

Bytevar (x): Das Byte (Wert in binär) von Daten, in denen Sie das Bit schreiben möchten.

BitNumber (n): Der Index (0 bis 7) oder die Zahl aus dem am wenigsten signifikanten Bit, das wir in der Bytevar schreiben möchten.

Bitvalue (B): Der Wert (0 oder 1), den Sie in das angegebene Bit schreiben möchten.

Rückgabewert

Die Funktion bitwrite () gibt keinen Wert zurück, gibt jedoch den geänderten numerischen Wert an, dessen Bit geändert wird.

Beispielcode

Im Folgenden gibt uns der Code eine Vorstellung davon, wie die Funktion bitwrite () in der Arduino -Programmierung funktioniert:

void setup ()
Serie.Beginnen Sie (9600);
Byte x = 0b11111101; // Dies ist binärer konstanter Wert, der durch 0B -Präfix angegeben ist
Serie.print ("vor:");
Serie.println (x, bin); // 11111101
Bitwrite (x, 0, 0); // Dies schreibt 0 bis am wenigsten signifikant (0) von x
Serie.print ("nach:");
Serie.println (x, bin); // 11111100

void Loop ()

In diesem Code initialisiert die Funktion Setup () die serielle Kommunikation und legt eine Byte -Variable X auf den Binärwert 0B111111101 fest. Die Funktion bitwrite () wird verwendet, um 0 auf das am wenigsten signifikante Bit (Bitposition 0) von x zu schreiben. Die ursprünglichen und modifizierten Werte von x werden auf den Serienmonitor gedruckt.

Die Loop () -Funktion ist leer, sodass das Programm einfach einmal ausgeführt wird und dann stoppt.

Ausgang

In der Ausgabe sehen wir das am wenigsten signifikante Bit auf 0 von 1:

Unterschied zwischen BitSet () und Bitwrite () Arduino -Funktion

Die Funktionen BitSet () und Bitwrite () werden beide in der Arduino -Programmierung verwendet.

Der bitset () Nimmt einen Bitindex und einen Verweis auf ein Datenbyte und legt das Bit auf den angegebenen Index auf 1 fest.

Zum Beispiel, Bitset (3, MyByte) würde das 4. Bit (Zählen von 0) von MyByte auf 1 festlegen. Wenn das Bit bereits festgelegt ist, tut BitSet () nichts.

Der bitwrite () Die Funktion nimmt einen Bitindex, ein Datenbyte und einen Wert (entweder 0 oder 1) und legt das Bit auf den angegebenen Index auf den angegebenen Wert fest.

Zum Beispiel, Bitwrite (MyByte, 3, 1) würde das 4. Stück MyByte auf 1 setzen. Wenn der Wertparameter 0 ist, löscht „Bitwrite“ das Bit im angegebenen Index.

Zusammenfassend, BitSet () wird verwendet, um etwas auf 1 zu setzen, während Bitwrite () wird verwendet, um ein Bit entweder auf 0 oder 1 einzustellen.

Abschluss

Die Bitset () und Bitwrite () Beide Funktionen können die einzelnen Bits innerhalb einer Variablen ändern. BitSet () kann den Wert jedoch nur auf 1 einstellen, aber Bitwrite () kann die Werte je nach dem definierten Bit innerhalb des dritten Parameters der Funktion auf 1 oder 0 überschreiben. Für detailliertere Einblicke und Beispiele für beide lesen Sie den Artikel.