Zusammenführen von zwei werten in eine Variable (Arduino, HYT221)

Gast #3978124
Lesenswert?

Hallo,
Ich möchte für ein Projekt mit einem Arduino einen HYT221 
Temperatur/Luftfeuchte Sensor auslesen.

Als ich nach passendem Code gesucht habe bin ich hierrauf gestoßen:
http://www.mikrocontroller.net/attachment/110234/HYT-xxx.pdf

soweit auch sehr verständlich....aber eine Passage versteh ich nicht.

es sollen zwei Bitwerte zu eine Variablen kombiniert werden.

Gegeben ist diese Code Passage:

raw_T16 = Buffer[2] * 256 + Buffer[3]; oder
raw_T16 = Buffer[2] < 8 | Buffer[3];

Beide Zeilen sollen das selbe tun.

Die untere Kombiniert mit Hilfe eine "Bitwise or" das versteh ich. Aber 
ich verstehe den nutzen von "< 8" nicht.

Die obere Zeile versteh ich Garnicht. soll das eine Multiplikation oder 
ein dereference Pointer sein? Und warum 256?

Währe nett wenn ihr meinem Verständnis auf die Sprünge helfen könntet :)
#3978134
Lesenswert?

raw_T16 = Buffer[2] * 256 + Buffer[3];
Beispiel im dezimal System:
du hast zwei zaheln A=1 und B=2 jetzt möchtest du eine gemeinsame 
variable AB haben dies geht durch:
AB=10*A+B nichts andres mach das *256 es scheibt um log2(256)=8 Stellen 
nach links.


raw_T16 = Buffer[2] in der Variablen steht jetzt 00000000AAAAAAAA

 < 8 |in der Variablen steht jetzt  AAAAAAAA00000000 da die werte um 8 
bit nach links geschoben werden

 Buffer[3]; ist jetzt das Ergebniss der Addition AAAAAAAAAABBBBBBBBBB

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren