Funkcja bitset i bitwrite w programowaniu Arduino

Funkcja bitset i bitwrite w programowaniu Arduino

W języku programowania Arduino funkcja bitset () i bitwrite () służy do manipulowania poszczególnymi bitami w bajcie lub innym typu danych. W tym artykule szczegółowo zbadamy funkcję BITSet () i bitwrite () i omówimy, w jaki sposób można ją użyć do poprawy wydajności i funkcjonalności programów Arduino.

Co to jest funkcja BITSet () w Arduino

Funkcja BITSet () to wbudowana funkcja w języku programowania Arduino, która służy do ustawienia określonego bitu w bajcie lub innym typu danych na wartość 1.

Używamy tej funkcji, w której musimy manipulować poszczególnymi bitami w większym typie danych, ponieważ pozwala to zrobić to szybko i łatwo.

Składnia

Postępowań zgodnie z funkcją BITSET () w Arduino:

bitwrite (bytevar, bitnumber);

Lub:

bitset (x, n);

W tej składni „X”Reprezentuje zmienną, którą chcesz zmodyfikować, i„N”Reprezentuje bit, który chcesz ustawić. Pozycja bitowa jest zerowa, więc najmniej znaczącym bit jest bit 0, drugim najmniej znaczącym bitem jest bit 1 i tak dalej.

Parametry

Ta funkcja może przyjąć dwa parametry:

BYTEVAR (x): To jest wartość numeryczna, której wartość musimy ustawić.

Bytenumber (n): Opisuje, który bit ma być ustawiony. Zaczyna się od 0 od najmniej znaczącego bitu.

Wartość zwracana

Funkcja zwraca zmodyfikowaną wartość zmiennej „x”.

Przykładowy kod

Poniższy kod ilustruje użycie funkcji BITSet () w programowaniu Arduino:

void setup ()
Seryjny.rozpocząć (9600);
bajt x = 0b11111101; // jest to stała wartość binarna wskazana przez prefiks 0B
Seryjny.drukuj („przed,”);
Seryjny.println (x, bin); // drukuje oryginalną wartość binarną równą 11111101
bitset (x, 1); // Ta funkcja ustawi 1 na drugi bit
Seryjny.wydruku („After:”);
Seryjny.println (x, bin); // wydrukuje numer binarny po ustawionym drugim bicie na 1 (11111111)

void Loop ()

W tym kodzie funkcja setup () inicjuje komunikację szeregową i ustawia zmienną bajtów x na wartość binarną 0B11111101. Funkcja bitset () służy do ustawienia drugiego bitu (liczenia z prawej) x na 1. Oryginalne i zmodyfikowane wartości x są drukowane na monitor szeregowych.

Funkcja Loop () jest pusta, więc program działa po prostu raz, a następnie zatrzymuje się.

Wyjście

W wyjściu możemy zobaczyć drugi bit od lewej lub najmniej znaczącej strony jest ustawiony na 1:

Co to jest funkcja bitwrite () w Arduino

Funkcja bitwrite () pozwala napisać wartość (0 lub 1) do określonego bitu w bajcie danych. Jego składnia, parametry i wartość zwracana są następujące:

Składnia

Po następstwie składni nastąpi funkcja bitwrite () w programowaniu Arduino:

bitwrite (bytevar, bitnumber, bitValue);

Lub:

bitwrite (x, n, b);

Parametry

Poniżej znajdują się trzy parametry, które przybiera ta funkcja:

BYTEVAR (x): bajt (wartość w binarnej) danych, w których chcesz napisać bit.

Bitnumber (n): indeks (0 do 7) lub liczba od najmniej znaczącego bitu, którą chcemy napisać w bajt.

BitValue (B): wartość (0 lub 1), którą chcesz napisać do określonego bitu.

Wartość zwracana

Funkcja bitwrite () nie zwraca żadnej wartości, ale daje zmodyfikowaną wartość numeryczną, której bit jest zmieniany.

Przykładowy kod

Poniżej podany kod daje nam pomysł, jak działa funkcja bitwrite () w programowaniu Arduino:

void setup ()
Seryjny.rozpocząć (9600);
bajt x = 0b11111101; // jest to stała wartość binarna wskazana przez prefiks 0B
Seryjny.drukuj („przed,”);
Seryjny.println (x, bin); // 11111101
bitwrite (x, 0, 0); // to zapisuje 0 do najmniej znaczącego bitu (0) x
Seryjny.wydruku („After:”);
Seryjny.println (x, bin); // 11111100

void Loop ()

W tym kodzie funkcja setup () inicjuje komunikację szeregową i ustawia zmienną bajtów x na wartość binarną 0B11111101. Funkcja bitwrite () służy do zapisu 0 do najmniej znaczącego bitu (pozycja bitu 0) x. Oryginalne i zmodyfikowane wartości x są drukowane na monitor szeregowych.

Funkcja Loop () jest pusta, więc program działa po prostu raz, a następnie zatrzymuje się.

Wyjście

W wyjściu możemy zobaczyć najmniej znaczący bit ustawiony na 0 z 1:

Różnica między funkcją BITSet () i bitwrite () Arduino

Funkcje BITSet () i bitwrite () są używane w programowaniu Arduino w celu manipulowania poszczególnymi bitami w bajcie danych, ale mają pewne różnice.

bitset () Występuje wskaźnik bit i odniesienie do bajtu danych i ustawia bit na danym indeksie na 1.

Na przykład, Bitset (3, Mybyte) ustawiłby czwarty bit (liczenie od 0) Mybyte na 1. Jeśli bit jest już ustawiony, Bitset () nic nie robi.

bitwrite () Funkcja przyjmuje wskaźnik bitów, bajt danych i wartość (0 lub 1) i ustawia bit na danym indeksie na daną wartość.

Na przykład, BitWrite (Mybyte, 3, 1) ustawiłby czwarty kawałek Mybyte na 1. Jeśli parametr wartości to 0, „bitwrite” usuwa bit w danym indeksie.

W podsumowaniu, Bitset () służy do ustawiania nieco na 1, chwila bitwrite () służy do ustawiania bitu na 0 lub 1.

Wniosek

BITSet () i bitwrite () Obie funkcje mogą zmienić poszczególne bity w zmiennej. Jednak bitset () może ustawić wartość tylko na 1, ale bitwrite () może zastąpić wartości do 1 lub 0 w zależności od zdefiniowanego bitu wewnątrz trzeciego parametru funkcji. Aby uzyskać bardziej szczegółowy wgląd i przykłady przeczytaj artykuł.