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
#3978141
Lesenswert?
• ▲
▼
Nochmal zur Multiplikation versus schieben.
Du bist beim Computer im Binärsystem. Mal 2 ist also nichts anderes als 
alle Ziffern eins nach links zu schieben, so wie beim Dezimalsystem mal 
10 auch alle Ziffern eins nach links schiebt.
Beispiel Dezimal:
156 * 10 = 1560
Binär:
1011 * 2 = 10110

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.