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
von
bis
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
sind Bit.7 und Bit.6 das 1. und 0. Bit von dem 10 Bitwert von X. In
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