Zwei 8b zu einer 16Bit Zahl zusammensetzen

Gast #85988
Lesenswert?
• ▲
▼
Hallo,

Ich bekomme von einem I2C AD Wandler zwei 8 Bit worte zurück. wie packe
ich die jetzt in eine Int Zahl? Ich will ja meine Spannung berechnen
und laut Datenblatt ist der min Code -32,768. das verstehe ich so dass
das 0V entspricht und 32,767 der Referenzspannung.

Ich habe es mit zahl = (upper<<8) | lower; probiert, aber irgendwie
kommt das nicht hin..

Was mache ich falsch?

Danke schonmal.
Gast #85990
Lesenswert?
• ▲
▼
Hallo

volatile   unsigned char  wert_1;
volatile   unsigned char  wert_2;
volatile   unsigned int   wert;

           wert_1 = 0x34;
           wert_2 = 0x23;

           wert = ( wert_1 << 8) + wert_2;  //wert = 0x3423

Das volatile nur zum Test.

MFG
Dieter
Gast #85993
Lesenswert?
• ▲
▼
@ Old Bug
"Plus" oder "Oder" oder "exclusiv Oder" ist hier egal. Die
unteren acht bit solltren eh leer sein, daher ist hier ein ODER schon
angebracht.
@Dieter
Wenn das geht ist das Compiler-Zufall. Nicht jeder Compiler behandelt
unsigned char als 16bit-Werte.

besser so :
unsigned wert = ((unsigned int)MSB_byte << 8)|(unsigned int)LSB_Byte;

MfG, Khani

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.