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.
als welcher type sind zahl, upper und lower definiert. Wenn upper nur ein 8-Bit Typ ist kommt beim shift immer 0 heraus. grüsse leo9
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
Achte mal auf Dieters Posting! Der Fehler wird bei Dir wohl im ODER liegen, da muss nämlich eine addition erfolgen! Gruß, Patrick...
@ 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.