AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Page principale
Pages associées
Modules
Structures de données
Exemples
lsm303.h
1
22
#ifndef _AVRIO_LSM303_H_
23
#define _AVRIO_LSM303_H_
24
25
#include <avrio/defs.h>
26
27
__BEGIN_C_DECLS
28
/* ========================================================================== */
29
#if ! defined(__DOXYGEN__)
30
31
/* constants ================================================================ */
32
33
/* ACC Registers */
34
#define LSM303_CTRL_REG1_A 0x20
35
#define LSM303_PM2 7
36
#define LSM303_PM1 6
37
#define LSM303_PM0 5
38
#define LSM303_DR1 4
39
#define LSM303_DR0 3
40
#define LSM303_ZEN 2
41
#define LSM303_YEN 1
42
#define LSM303_XEN 0
43
44
#define LSM303_CTRL_REG2_A 0x21
45
#define LSM303_BOOT 7
46
#define LSM303_HPM1 6
47
#define LSM303_HPM0 5
48
#define LSM303_FDS 4
49
#define LSM303_HPEN2 3
50
#define LSM303_HPEN1 2
51
#define LSM303_HPCF1 1
52
#define LSM303_HPCF0 0
53
54
#define LSM303_CTRL_REG3_A 0x22
55
#define LSM303_IHL 7
56
#define LSM303_PP_OD 6
57
#define LSM303_LIR2 5
58
#define LSM303_I2_CFG1 4
59
#define LSM303_I2_CFG0 3
60
#define LSM303_LIR1 2
61
#define LSM303_I1_CFG1 1
62
#define LSM303_I1_CFG0 0
63
64
#define LSM303_CTRL_REG4_A 0x23
65
#define LSM303_BDU 7
66
#define LSM303_BLE 6
67
#define LSM303_FS1 5
68
#define LSM303_FS0 4
69
70
#define LSM303_CTRL_REG5_A 0x24
71
#define LSM303_TURNON1 1
72
#define LSM303_TURNON0 0
73
74
#define LSM303_CTRL_REG6_A 0x25 // DLHC only
75
#define LSM303_I2_CLICKEN 7
76
#define LSM303_I2_INT1 6
77
#define LSM303_I2_INT2 5
78
#define LSM303_BOOT_I1 4
79
#define LSM303_P2_ACT 3
80
#define LSM303_H_LACTIVE 1
81
82
#define LSM303_HP_FILTER_RESET_A 0x25 // DLH, DLM only
83
#define LSM303_REFERENCE_A 0x26
84
85
#define LSM303_STATUS_REG_A 0x27
86
#define LSM303_ZYXOR 7
87
#define LSM303_ZOR 6
88
#define LSM303_YOR 5
89
#define LSM303_XOR 4
90
#define LSM303_ZYXDA 3
91
#define LSM303_ZDA 2
92
#define LSM303_YDA 1
93
#define LSM303_XDA 0
94
95
#define LSM303_OUT_X_L_A 0x28
96
#define LSM303_OUT_X_H_A 0x29
97
#define LSM303_OUT_Y_L_A 0x2A
98
#define LSM303_OUT_Y_H_A 0x2B
99
#define LSM303_OUT_Z_L_A 0x2C
100
#define LSM303_OUT_Z_H_A 0x2D
101
#define LSM303_AUTOINC 7
102
103
#define LSM303_FIFO_CTRL_REG_A 0x2E // DLHC only
104
#define LSM303_FM1 7
105
#define LSM303_FM0 6
106
#define LSM303_TR 5
107
#define LSM303_FTH4 4
108
#define LSM303_FTH3 3
109
#define LSM303_FTH2 2
110
#define LSM303_FTH1 1
111
#define LSM303_FTH0 0
112
113
#define LSM303_FIFO_SRC_REG_A 0x2F // DLHC only
114
#define LSM303_WTM 7
115
#define LSM303_OVRN_FIFO 6
116
#define LSM303_EMPTY 5
117
#define LSM303_FSS4 4
118
#define LSM303_FSS3 3
119
#define LSM303_FSS2 2
120
#define LSM303_FSS1 1
121
#define LSM303_FSS0 0
122
123
#define LSM303_INT1_CFG_A 0x30
124
#define LSM303_INT2_CFG_A 0x34
125
#define LSM303_AOI 7
126
#define LSM303_6D 6
127
#define LSM303_ZHIE 5
128
#define LSM303_ZLIE 4
129
#define LSM303_YHIE 3
130
#define LSM303_YLIE 2
131
#define LSM303_XHIE 1
132
#define LSM303_XLIE 0
133
134
#define LSM303_INT1_SRC_A 0x31
135
#define LSM303_INT2_SRC_A 0x35
136
#define LSM303_IA 6
137
#define LSM303_ZH 5
138
#define LSM303_ZL 4
139
#define LSM303_YH 3
140
#define LSM303_YL 2
141
#define LSM303_XH 1
142
#define LSM303_XL 0
143
144
#define LSM303_INT1_THS_A 0x32
145
#define LSM303_INT1_DURATION_A 0x33
146
147
148
#define LSM303_INT2_THS_A 0x36
149
#define LSM303_INT2_DURATION_A 0x37
150
151
#define LSM303_CLICK_CFG_A 0x38 // DLHC only
152
#define LSM303_CLICK_SRC_A 0x39 // DLHC only
153
#define LSM303_CLICK_THS_A 0x3A // DLHC only
154
#define LSM303_TIME_LIMIT_A 0x3B // DLHC only
155
#define LSM303_TIME_LATENCY_A 0x3C // DLHC only
156
#define LSM303_TIME_WINDOW_A 0x3D // DLHC only
157
158
159
/* MAG Registers */
160
#define LSM303_CRA_REG_M 0x00
161
#define LSM303_DO2 4
162
#define LSM303_DO1 3
163
#define LSM303_DO0 2
164
165
#define LSM303_CRB_REG_M 0x01
166
#define LSM303_GN2 7
167
#define LSM303_GN1 6
168
#define LSM303_GN0 5
169
170
#define LSM303_MR_REG_M 0x02
171
#define LSM303_MD1 1
172
#define LSM303_MD0 0
173
174
#define LSM303_OUT_X_H_M 0x03
175
#define LSM303_OUT_X_L_M 0x04
176
#define LSM303_OUT_Y_H_M -1 // The addresses of the Y and Z magnetometer output registers
177
#define LSM303_OUT_Y_L_M -2 // are reversed on the DLM and DLHC relative to the DLH.
178
#define LSM303_OUT_Z_H_M -3 // These four defines have dummy values so the library can
179
#define LSM303_OUT_Z_L_M -4 // determine the correct address based on the device type.
180
181
#define LSM303_SR_REG_M 0x09
182
#define LSM303_LOCK 1
183
#define LSM303_DRDY 0
184
185
#define LSM303_IRA_REG_M 0x0A
186
#define LSM303_IRB_REG_M 0x0B
187
#define LSM303_IRC_REG_M 0x0C
188
189
#define LSM303_WHO_AM_I_M 0x0F // DLM only
190
191
#define LSM303_TEMP_OUT_H_M 0x31 // DLHC only
192
#define LSM303_TEMP_OUT_L_M 0x32 // DLHC only
193
194
#define LSM303DLH_OUT_Y_H_M 0x05
195
#define LSM303DLH_OUT_Y_L_M 0x06
196
#define LSM303DLH_OUT_Z_H_M 0x07
197
#define LSM303DLH_OUT_Z_L_M 0x08
198
199
#define LSM303DLM_OUT_Z_H_M 0x05
200
#define LSM303DLM_OUT_Z_L_M 0x06
201
#define LSM303DLM_OUT_Y_H_M 0x07
202
#define LSM303DLM_OUT_Y_L_M 0x08
203
204
#define LSM303DLHC_OUT_Z_H_M 0x05
205
#define LSM303DLHC_OUT_Z_L_M 0x06
206
#define LSM303DLHC_OUT_Y_H_M 0x07
207
#define LSM303DLHC_OUT_Y_L_M 0x08
208
209
#endif
/* __DOXYGEN__ not defined */
210
211
__END_C_DECLS
212
/* ========================================================================== */
213
#endif
/* _AVRIO_LSM303_H_ not defined */
214
src
avrio
lsm303.h
Généré le Dimanche 14 Mai 2017 22:07:06 pour AvrIO par
1.8.11