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ł.