31 #ifndef LSM303D_REGS_H
32 #define LSM303D_REGS_H
35 #define LSM303D_REG_TEMP_OUT_L 0x05
36 #define LSM303D_REG_TEMP_OUT_H 0x06
37 #define LSM303D_REG_STATUS_M 0x07
38 #define LSM303D_REG_OUT_X_L_M 0x08
39 #define LSM303D_REG_OUT_X_H_M 0x09
40 #define LSM303D_REG_OUT_Y_L_M 0x0A
41 #define LSM303D_REG_OUT_Y_H_M 0x0B
42 #define LSM303D_REG_OUT_Z_L_M 0x0C
43 #define LSM303D_REG_OUT_Z_H_M 0x0D
45 #define LSM303D_REG_WHO_AM_I 0x0F
47 #define LSM303D_REG_INT_CTRL_M 0x12
48 #define LSM303D_REG_INT_SRC_M 0x13
49 #define LSM303D_REG_INT_THS_L_M 0x14
50 #define LSM303D_REG_INT_THS_H_M 0x15
51 #define LSM303D_REG_OFFSET_X_L_M 0x16
52 #define LSM303D_REG_OFFSET_X_H_M 0x17
53 #define LSM303D_REG_OFFSET_Y_L_M 0x18
54 #define LSM303D_REG_OFFSET_Y_H_M 0x19
55 #define LSM303D_REG_OFFSET_Z_L_M 0x1A
56 #define LSM303D_REG_OFFSET_Z_H_M 0x1B
57 #define LSM303D_REG_REFERENCE_X 0x1C
58 #define LSM303D_REG_REFERENCE_Y 0x1D
59 #define LSM303D_REG_REFERENCE_Z 0x1E
60 #define LSM303D_REG_CTRL0 0x1F
61 #define LSM303D_REG_CTRL1 0x20
62 #define LSM303D_REG_CTRL2 0x21
63 #define LSM303D_REG_CTRL3 0x22
64 #define LSM303D_REG_CTRL4 0x23
65 #define LSM303D_REG_CTRL5 0x24
66 #define LSM303D_REG_CTRL6 0x25
67 #define LSM303D_REG_CTRL7 0x26
68 #define LSM303D_REG_STATUS_A 0x27
69 #define LSM303D_REG_OUT_X_L_A 0x28
70 #define LSM303D_REG_OUT_X_H_A 0x29
71 #define LSM303D_REG_OUT_Y_L_A 0x2A
72 #define LSM303D_REG_OUT_Y_H_A 0x2B
73 #define LSM303D_REG_OUT_Z_L_A 0x2C
74 #define LSM303D_REG_OUT_Z_H_A 0x2D
75 #define LSM303D_REG_FIFO_CTRL 0x2E
76 #define LSM303D_REG_FIFO_SRC 0x2F
77 #define LSM303D_REG_IG_CFG1 0x30
78 #define LSM303D_REG_IG_SRC1 0x31
79 #define LSM303D_REG_IG_THS1 0x32
80 #define LSM303D_REG_IG_DUR1 0x33
81 #define LSM303D_REG_IG_CFG2 0x34
82 #define LSM303D_REG_IG_SRC2 0x35
83 #define LSM303D_REG_IG_THS2 0x36
84 #define LSM303D_REG_IG_DUR2 0x37
85 #define LSM303D_REG_CLICK_CFG 0x38
86 #define LSM303D_REG_CLICK_SRC 0x39
87 #define LSM303D_REG_CLICK_THS 0x3A
88 #define LSM303D_REG_TIME_LIMIT 0x3B
89 #define LSM303D_REG_TIME_LATENCY 0x3C
90 #define LSM303D_REG_TIME_WINDOW 0x3D
91 #define LSM303D_REG_ACT_THS 0x3E
92 #define LSM303D_REG_ACT_DUR 0x3F
95 #define LSM303D_REG_WHO_I_AM 0x49
98 #define LSM303D_AXEN (0x01 << 0)
99 #define LSM303D_AYEN (0x01 << 1)
100 #define LSM303D_AZEN (0x01 << 2)
101 #define LSM303D_ABDU (0x01 << 3)
102 #define LSM303D_AODR_MASK (0x0F << 4)
120 #define LSM303D_ASIM (0x01 << 0)
121 #define LSM303D_AAST (0x01 << 1)
122 #define LSM303D_AFS_MASK (0x07 << 3)
123 #define LSM303D_ABW_MASK (0x03 << 6)
143 #define LSM303D_INT1_EMPTY (0x01 << 0)
144 #define LSM303D_INT1_DRDY_M (0x01 << 1)
145 #define LSM303D_INT1_DRDY_A (0x01 << 2)
146 #define LSM303D_INT1_IGM (0x01 << 3)
147 #define LSM303D_INT1_IG2 (0x01 << 4)
148 #define LSM303D_INT1_IG1 (0x01 << 5)
149 #define LSM303D_INT1_Click (0x01 << 6)
150 #define LSM303D_INT1_BOOT (0x01 << 7)
153 #define LSM303D_INT2_FTH (0x01 << 0)
154 #define LSM303D_INT2_Overrun (0x01 << 1)
155 #define LSM303D_INT2_DRDY_M (0x01 << 2)
156 #define LSM303D_INT2_DRDY_A (0x01 << 3)
157 #define LSM303D_INT2_INTM (0x01 << 4)
158 #define LSM303D_INT2_INT2 (0x01 << 5)
159 #define LSM303D_INT2_INT1 (0x01 << 6)
160 #define LSM303D_INT2_Click (0x01 << 7)
164 #define LSM303D_LIR1 (0x01 << 0)
165 #define LSM303D_LIR2 (0x01 << 1)
166 #define LSM303D_M_ODR_MASK (0x07 << 2)
167 #define LSM303D_M_RES (0x03 << 5)
168 #define LSM303D_TEMP_EN (0x01 << 7)
182 #define LSM303D_MFS_MASK (0x03 << 5)
193 #define LSM303D_MD_MASK (0x03 << 0)
194 #define LSM303D_MLP (0x01 << 2)
195 #define LSM303D_T_ONLY (0x01 << 4)
196 #define LSM303D_AFDS (0x01 << 5)
197 #define LSM303D_AHPM_MASK (0x03 << 6)
208 #define LSM303D_XADA (0x01 << 0)
209 #define LSM303D_YADA (0x01 << 1)
210 #define LSM303D_ZADA (0x01 << 2)
211 #define LSM303D_ZYXADA (0x01 << 3)
212 #define LSM303D_XAOR (0x01 << 4)
213 #define LSM303D_YAOR (0x01 << 5)
214 #define LSM303D_ZAOR (0x01 << 6)
215 #define LSM303D_ZYXAOR (0x01 << 7)
218 #define LSM303D_XMDA (0x01 << 0)
219 #define LSM303D_YMDA (0x01 << 1)
220 #define LSM303D_ZMDA (0x01 << 2)
221 #define LSM303D_ZYXMDA (0x01 << 3)
222 #define LSM303D_XMOR (0x01 << 4)
223 #define LSM303D_YMOR (0x01 << 5)
224 #define LSM303D_ZMOR (0x01 << 6)
225 #define LSM303D_ZYXMOR (0x01 << 7)
Lsm303dMagRange
LSM303D magnetic range (MFS bits 5-6 in LSM303D_REG_CTRL6)
@ LSM303D_MAG_RANGE_4GAUSS
@ LSM303D_MAG_RANGE_8GAUSS
@ LSM303D_MAG_RANGE_2GAUSS
@ LSM303D_MAG_RANGE_12GAUSS
Lsm303dAccelBandwidth
LSM303D accelerometer anti-alias filter bandwidth (BW bits 6-7 in LSM303D_REG_CTRL2)
Lsm303dAccelRates
LSM303D acceleration data rate (bits 4-7 in LSM303D_REG_CTRL1)
@ LSM303D_ACC_RATE_3_125HZ
@ LSM303D_ACC_RATE_1600HZ
@ LSM303D_ACC_RATE_6_25HZ
@ LSM303D_ACC_RATE_12_5HZ
Lsm303dMagRates
LSM303D magnetic data rate (MODR bits 2-4 in LSM303D_REG_CTRL5)
@ LSM303D_MAG_RATE_3_125HZ
@ LSM303D_MAG_RATE_12_5HZ
@ LSM303D_MAG_RATE_6_25HZ
Lsm303dAccelRanges
LSM303D accelerometer anti-alias filter bandwidth (ODR bits 3-5 in LSM303D_REG_CTRL2)
Lsm303dMagMode
LSM303D magnetic sensor mode selection (MD bits 0-1 in LSM303D_REG_CTRL7)
@ LSM303D_MAG_MODE_CONTINOUS_CONVERSION
@ LSM303D_MAG_MODE_POWER_DOWN
@ LSM303D_MAG_MODE_SINGLE_CONVERSION