Hallo
Ich versuche gerade einen funktionierenden Code zu schreiben, welcher mir dem Daten vom LIS3DH ausgibt. Ich habe den Code mit diversen libaries probiert jedoch sind die zum Teil fehlerhaft oder es fehlen einstellungsmöglichkeiten. Ich würde gerne den High Res mode mit 1,344kHz mit 2g verwenden. Dafür setzte ich das CTRL_REG1 (151) und CTRL_REG4 (16). Das funktionier so weit auch. Nun möchte ich aber die Daten auslesen. Und da ergibt sich mir das Problem. Wenn ich versuche me hrere Register auf einmal auszulesen das kommt da nix vernünftiges raus.
Hier der Code:
#include <Wire.h>
int LIS3DH = 0x18; float CTRL_REG1; float CTRL_REG4; float X_OUT, Y_OUT, Z_OUT; uint8_t OUT_X_L, OUT_X_H, OUT_Y_L, OUT_Y_H, OUT_Z_L, OUT_Z_H; uint16_t OUT_X, OUT_Y, OUT_Z;
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
Ich möchte mal nur den Z Wert auslesen. Daher lese ich OUT_Z_L und OUT_Z_H aus. Wenn ich die aber gemeinsam auslese dann bekomme ich für OUT_Z_H ganz andere Werte als wenn ich nur OUT_Z_H alleine auslese. Wie kann das sein?
Hat da jemand eine Idee?
Danke
Edit:
Um das nochmals klar zu stellen. Wenn ich veruche das OUT_Z_H register auszulesen bekomme ich was anders für :
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
als ich bei
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
bekomm. Obwohl meiner meinung nach das zweitere das richtige liefter
