Werte eines BMA020 (vorzeichenlos) ausgeben (vorzeichenbehaftet)

OP #2480296
Hi,
mein Versuche Daten aus einem BMA020 auszulesen ist nun geglückt.

Erst über den I2C den Offset senden ab dem gelesen werden soll:
Adresse: 0x70
Daten:   0x02

Dann die 6 Byte für X, Y, Z lesen.
Adresse: 0x71
Daten:   0x06 (6 Bytes empfangen)

So nun habe ich die Daten in
1
uint8_t write_buf[]
 von
1
write_buf[1]
 bis
1
write_buf[6]
 stehen.
Die Daten sind wie folgt codiert:
1
{LSB_X,MSB_X,LSB_Y,MSB_Y,LSB_Z,MSB_Z}

Es handelt sich um 10 Bit pro Achse.
Am Beispiel von X:

In
1
write_buf[1]
 sind Bit.7 und Bit.6 das 1. und 0. Bit von dem 10 Bitwert von X. In
1
write_buf[2]
 befinden sich die Bits 2 bis 9. Die Werte sind im Zweierkomplement 
codiert.

Mein Versuch die Werte auf einem Terminal (RS232) auszugeben liefert nur 
positive Werte. Hier lasse ich die unteren 2 Bit weg um es einfach zu 
halten.
1
put_string(itoa((int)write_buf[2], msg, 10));

Was mache ich hier falsch?

Tschüss muebau
OP
Hi,
niemand?

Ich habe auch schon mit den vollen 10 Bit gearbeitet. Hierbei habe ich 
geprueft ob das Bit an der 10. Stelle gesetzt ist. Dies sollte ja 
anzeigen ob die Zahl negativ ist.
Ist dieses Bit gesetzt habe ich es geloescht und dann das Bit an der 16. 
Stelle gesetzt. Hiermit korrigiere ich den Fehler der entstehen wuerde 
wenn das Vorzeichenbit an der 10. Stelle bliebe.

Bevor ich mir allerdings Gedanken um 10 Bitwerte mache, sollte das mit 
den 8 Bitwerten klappen.

Tschuess muebau

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.