Hallo,
ich lese die Register eines Beschleunigungssensor aus.
Laut Datenblatt:
These registers contain the X-axis, Y-axis, and Z-axis 14-bit
left-justified sample data expressed as 2's complement numbers.
folgende Variablen werden eingelesen:
1 | typedef struct
|
2 | {
|
3 | int16_t x;
|
4 | int16_t y;
|
5 | int16_t z;
|
6 | } SRAWDATA;
|
7 |
|
8 | SRAWDATA Accel;
|
9 |
|
10 | ReadAccelMagnData(&Accel);
|
11 |
|
12 | float x = Accel.x / 16383.0;
|
13 | float y = Accel.y / 16383.0;
|
14 | float z = Accel.z / 16383.0;
|
15 |
|
16 | g = sqrt(x * x + y * y + z * z);
|
ist das richtig dass man den Wert durch 16383 teilt?
Die Anzeige stimmt soweit.
X 0
Y 0
Z 1
Sensor liegt wagerecht!
aber bei höheren g Kräften wird zu wenig angezeigt(laut g kraft
simulator)
Ich weiß nicht wie man das überprüfen kann.