biteset og bitwrite -funksjon i Arduino -programmering

biteset og bitwrite -funksjon i Arduino -programmering

På Arduino -programmeringsspråket brukes Bitset () og BitWrite () -funksjonen til å manipulere individuelle biter innenfor en byte eller annen datatype. I denne artikkelen vil vi utforske Bit Set () og BitWrite () -funksjonen i detalj og diskutere hvordan den kan brukes til å forbedre ytelsen og funksjonaliteten til Arduino -programmene dine.

Hva er Biteset () -funksjon i Arduino

Bitet () -funksjonen er en innebygd funksjon i Arduino-programmeringsspråket som brukes til å stille en spesifikk bit innenfor en byte eller annen datatype til en verdi 1.

Vi bruker denne funksjonen der vi trenger å manipulere individuelle biter innenfor en større datatype, da den lar deg gjøre det raskt og enkelt.

Syntaks

Følgende syntaks vil bli fulgt for BitSet () -funksjon i Arduino:

Bitwrite (Bytevar, BitNumber);

Eller:

bitett (x, n);

I denne syntaksen, “x”Representerer variabelen du vil endre, og“n”Representerer den biten du vil sette. Bitposisjonen er nullindeksert, så den minst betydningsfulle biten er bit 0, den nest minst betydningsfulle biten er bit 1, og så videre.

Parametere

Denne funksjonen kan ta to parametere:

Bytevar (x): Dette er den numeriske verdien hvis verdien vi trenger å sette.

Bytenumber (n): Den beskriver hvilken bit som skal settes. Det starter 0 fra den minst betydningsfulle biten.

Returverdi

Funksjonen returnerer den endrede verdien av variabelen “x”.

Eksempelkode

Følgende kode illustrerer bruken av BitSet () -funksjonen i Arduino -programmering:

void setup ()
Serie.Begynn (9600);
byte x = 0B11111101; // dette er binær konstant verdi indikert med 0b prefiks
Serie.print ("før:");
Serie.println (x, bin); // Skriver ut original binær verdi lik 11111101
bitett (x, 1); // denne funksjonen vil sette 1 til andre bit
Serie.trykk ("etter:");
Serie.println (x, bin); // Skriver ut binært nummer etter det andre bit satt til 1 (11111111)

void loop ()

I denne koden initialiserer Setup () -funksjonen seriell kommunikasjon og angir en byte -variabel x til den binære verdien 0B11111101. Bitet () -funksjonen brukes til å stille den andre biten (telling fra høyre) på x til 1. De originale og modifiserte verdiene til X er trykt til seriemonitoren.

Loop () -funksjonen er tom, så programmet kjører ganske enkelt en gang og stopper deretter.

Produksjon

I utgangen kan vi se en annen bit fra venstre eller minst betydelig side er satt til 1:

Hva er BitWrite () -funksjonen i Arduino

BitWrite () -funksjonen lar deg skrive en verdi (0 eller 1) til en bestemt bit i en byte av data. Dens syntaks, parametere og returverdi er som følger:

Syntaks

Følgende syntaks vil bli fulgt av BitWrite () -funksjonen i Arduino -programmering:

Bitwrite (Bytevar, BitNumber, BitValue);

Eller:

bitwrite (x, n, b);

Parametere

Følgende er de tre parametrene som denne funksjonen tar:

Bytevar (x): byte (verdi i binær) av data der du vil skrive biten.

BitNumber (n): indeksen (0 til 7) eller antall fra minst betydelig bit som vi ønsker å skrive i bytevar.

BitValue (B): verdien (0 eller 1) som du vil skrive til den spesifiserte biten.

Returverdi

BitWrite () -funksjonen returnerer ingen verdi, men den gir den modifiserte numeriske verdien hvis bit er endret.

Eksempelkode

Nedenfor gitt kode gir oss en ide om hvordan BitWrite () -funksjonen fungerer i Arduino -programmering:

void setup ()
Serie.Begynn (9600);
byte x = 0B11111101; // dette er binær konstant verdi indikert med 0b prefiks
Serie.print ("før:");
Serie.println (x, bin); // 11111101
Bitwrite (x, 0, 0); // dette vil skrive 0 til minst betydelig bit (0) av x
Serie.trykk ("etter:");
Serie.println (x, bin); // 11111100

void loop ()

I denne koden initialiserer Setup () -funksjonen seriell kommunikasjon og angir en byte -variabel x til den binære verdien 0B11111101. BitWrite () -funksjonen brukes til å skrive 0 til den minst betydningsfulle bit (bitposisjon 0) av x. De originale og modifiserte verdiene til X er trykt til seriemonitoren.

Loop () -funksjonen er tom, så programmet kjører ganske enkelt en gang og stopper deretter.

Produksjon

I utgangen kan vi se den minst betydningsfulle bit satt til 0 fra 1:

Forskjell mellom biteset () og bitwrite () arduino -funksjon

Bitset () og bitwrite () -funksjonene brukes begge i Arduino -programmering for å manipulere individuelle biter innenfor en byte av data, men de har noen forskjeller.

De bitett () Tar litt indeks og en referanse til en byte med data og setter biten på den gitte indeksen til 1.

For eksempel, Biteset (3, MyByte) ville sette den fjerde biten (telling fra 0) av MyByte til 1. Hvis biten allerede er satt, gjør biteset () ingenting.

De BitWrite () Funksjonen tar litt indeks, en byte med data og en verdi (enten 0 eller 1), og setter biten til den gitte indeksen til den gitte verdien.

For eksempel, Bitwrite (MyByte, 3, 1) ville sette den fjerde biten av MyByte til 1. Hvis verdiparameteren er 0, tømmer "bitwrite" biten ved den gitte indeksen.

oppsummert, biteset () brukes til å sette litt til 1, samtidig som BitWrite () brukes til å sette litt til enten 0 eller 1.

Konklusjon

Bitet () og BitWrite () Begge funksjonene kan endre de enkelte bitene i en variabel. Imidlertid kan bitetten () bare sette verdien til 1, men bitwrite () kan overskrive verdier til enten 1 eller 0 avhengig av den definerte biten i den tredje parameteren til funksjonen. For mer detaljert innsikt og eksempler på begge leser artikkelen.