Select one of the symbols to view example projects that use it.
 
Outline
#define __LSM303DLHC_H
Includes
#include "../Common/accelero.h"
#define ACC_I2C_ADDRESS
#define MAG_I2C_ADDRESS
#define LSM303DLHC_WHO_AM_I_ADDR
#define LSM303DLHC_CTRL_REG1_A
#define LSM303DLHC_CTRL_REG2_A
#define LSM303DLHC_CTRL_REG3_A
#define LSM303DLHC_CTRL_REG4_A
#define LSM303DLHC_CTRL_REG5_A
#define LSM303DLHC_CTRL_REG6_A
#define LSM303DLHC_REFERENCE_A
#define LSM303DLHC_STATUS_REG_A
#define LSM303DLHC_OUT_X_L_A
#define LSM303DLHC_OUT_X_H_A
#define LSM303DLHC_OUT_Y_L_A
#define LSM303DLHC_OUT_Y_H_A
#define LSM303DLHC_OUT_Z_L_A
#define LSM303DLHC_OUT_Z_H_A
#define LSM303DLHC_FIFO_CTRL_REG_A
#define LSM303DLHC_FIFO_SRC_REG_A
#define LSM303DLHC_INT1_CFG_A
#define LSM303DLHC_INT1_SOURCE_A
#define LSM303DLHC_INT1_THS_A
#define LSM303DLHC_INT1_DURATION_A
#define LSM303DLHC_INT2_CFG_A
#define LSM303DLHC_INT2_SOURCE_A
#define LSM303DLHC_INT2_THS_A
#define LSM303DLHC_INT2_DURATION_A
#define LSM303DLHC_CLICK_CFG_A
#define LSM303DLHC_CLICK_SOURCE_A
#define LSM303DLHC_CLICK_THS_A
#define LSM303DLHC_TIME_LIMIT_A
#define LSM303DLHC_TIME_LATENCY_A
#define LSM303DLHC_TIME_WINDOW_A
#define LSM303DLHC_CRA_REG_M
#define LSM303DLHC_CRB_REG_M
#define LSM303DLHC_MR_REG_M
#define LSM303DLHC_OUT_X_H_M
#define LSM303DLHC_OUT_X_L_M
#define LSM303DLHC_OUT_Z_H_M
#define LSM303DLHC_OUT_Z_L_M
#define LSM303DLHC_OUT_Y_H_M
#define LSM303DLHC_OUT_Y_L_M
#define LSM303DLHC_SR_REG_M
#define LSM303DLHC_IRA_REG_M
#define LSM303DLHC_IRB_REG_M
#define LSM303DLHC_IRC_REG_M
#define LSM303DLHC_TEMP_OUT_H_M
#define LSM303DLHC_TEMP_OUT_L_M
#define I_AM_LMS303DLHC
#define LSM303DLHC_NORMAL_MODE
#define LSM303DLHC_LOWPOWER_MODE
#define LSM303DLHC_ODR_1_HZ
#define LSM303DLHC_ODR_10_HZ
#define LSM303DLHC_ODR_25_HZ
#define LSM303DLHC_ODR_50_HZ
#define LSM303DLHC_ODR_100_HZ
#define LSM303DLHC_ODR_200_HZ
#define LSM303DLHC_ODR_400_HZ
#define LSM303DLHC_ODR_1620_HZ_LP
#define LSM303DLHC_ODR_1344_HZ
#define LSM303DLHC_X_ENABLE
#define LSM303DLHC_Y_ENABLE
#define LSM303DLHC_Z_ENABLE
#define LSM303DLHC_AXES_ENABLE
#define LSM303DLHC_AXES_DISABLE
#define LSM303DLHC_HR_ENABLE
#define LSM303DLHC_HR_DISABLE
#define LSM303DLHC_FULLSCALE_2G
#define LSM303DLHC_FULLSCALE_4G
#define LSM303DLHC_FULLSCALE_8G
#define LSM303DLHC_FULLSCALE_16G
#define LSM303DLHC_ACC_SENSITIVITY_2G
#define LSM303DLHC_ACC_SENSITIVITY_4G
#define LSM303DLHC_ACC_SENSITIVITY_8G
#define LSM303DLHC_ACC_SENSITIVITY_16G
#define LSM303DLHC_BlockUpdate_Continous
#define LSM303DLHC_BlockUpdate_Single
#define LSM303DLHC_BLE_LSB
#define LSM303DLHC_BLE_MSB
#define LSM303DLHC_BOOT_NORMALMODE
#define LSM303DLHC_BOOT_REBOOTMEMORY
#define LSM303DLHC_HPM_NORMAL_MODE_RES
#define LSM303DLHC_HPM_REF_SIGNAL
#define LSM303DLHC_HPM_NORMAL_MODE
#define LSM303DLHC_HPM_AUTORESET_INT
#define LSM303DLHC_HPFCF_8
#define LSM303DLHC_HPFCF_16
#define LSM303DLHC_HPFCF_32
#define LSM303DLHC_HPFCF_64
#define LSM303DLHC_HIGHPASSFILTER_DISABLE
#define LSM303DLHC_HIGHPASSFILTER_ENABLE
#define LSM303DLHC_HPF_CLICK_DISABLE
#define LSM303DLHC_HPF_CLICK_ENABLE
#define LSM303DLHC_HPF_AOI1_DISABLE
#define LSM303DLHC_HPF_AOI1_ENABLE
#define LSM303DLHC_HPF_AOI2_DISABLE
#define LSM303DLHC_HPF_AOI2_ENABLE
#define LSM303DLHC_IT1_CLICK
#define LSM303DLHC_IT1_AOI1
#define LSM303DLHC_IT1_AOI2
#define LSM303DLHC_IT1_DRY1
#define LSM303DLHC_IT1_DRY2
#define LSM303DLHC_IT1_WTM
#define LSM303DLHC_IT1_OVERRUN
#define LSM303DLHC_IT2_CLICK
#define LSM303DLHC_IT2_INT1
#define LSM303DLHC_IT2_INT2
#define LSM303DLHC_IT2_BOOT
#define LSM303DLHC_IT2_ACT
#define LSM303DLHC_IT2_HLACTIVE
#define LSM303DLHC_OR_COMBINATION
#define LSM303DLHC_AND_COMBINATION
#define LSM303DLHC_MOV_RECOGNITION
#define LSM303DLHC_POS_RECOGNITION
#define LSM303DLHC_Z_HIGH
#define LSM303DLHC_Z_LOW
#define LSM303DLHC_Y_HIGH
#define LSM303DLHC_Y_LOW
#define LSM303DLHC_X_HIGH
#define LSM303DLHC_X_LOW
#define LSM303DLHC_Z_DOUBLE_CLICK
#define LSM303DLHC_Z_SINGLE_CLICK
#define LSM303DLHC_Y_DOUBLE_CLICK
#define LSM303DLHC_Y_SINGLE_CLICK
#define LSM303DLHC_X_DOUBLE_CLICK
#define LSM303DLHC_X_SINGLE_CLICK
#define LSM303DLHC_INT1INTERRUPT_DISABLE
#define LSM303DLHC_INT1INTERRUPT_ENABLE
#define LSM303DLHC_INT1INTERRUPT_LOW_EDGE
#define LSM303DLHC_INT1INTERRUPT_HIGH_EDGE
#define LSM303DLHC_ODR_0_75_HZ
#define LSM303DLHC_ODR_1_5_HZ
#define LSM303DLHC_ODR_3_0_HZ
#define LSM303DLHC_ODR_7_5_HZ
#define LSM303DLHC_ODR_15_HZ
#define LSM303DLHC_ODR_30_HZ
#define LSM303DLHC_ODR_75_HZ
#define LSM303DLHC_ODR_220_HZ
#define LSM303DLHC_FS_1_3_GA
#define LSM303DLHC_FS_1_9_GA
#define LSM303DLHC_FS_2_5_GA
#define LSM303DLHC_FS_4_0_GA
#define LSM303DLHC_FS_4_7_GA
#define LSM303DLHC_FS_5_6_GA
#define LSM303DLHC_FS_8_1_GA
#define LSM303DLHC_M_SENSITIVITY_XY_1_3Ga
#define LSM303DLHC_M_SENSITIVITY_XY_1_9Ga
#define LSM303DLHC_M_SENSITIVITY_XY_2_5Ga
#define LSM303DLHC_M_SENSITIVITY_XY_4Ga
#define LSM303DLHC_M_SENSITIVITY_XY_4_7Ga
#define LSM303DLHC_M_SENSITIVITY_XY_5_6Ga
#define LSM303DLHC_M_SENSITIVITY_XY_8_1Ga
#define LSM303DLHC_M_SENSITIVITY_Z_1_3Ga
#define LSM303DLHC_M_SENSITIVITY_Z_1_9Ga
#define LSM303DLHC_M_SENSITIVITY_Z_2_5Ga
#define LSM303DLHC_M_SENSITIVITY_Z_4Ga
#define LSM303DLHC_M_SENSITIVITY_Z_4_7Ga
#define LSM303DLHC_M_SENSITIVITY_Z_5_6Ga
#define LSM303DLHC_M_SENSITIVITY_Z_8_1Ga
#define LSM303DLHC_CONTINUOS_CONVERSION
#define LSM303DLHC_SINGLE_CONVERSION
#define LSM303DLHC_SLEEP
#define LSM303DLHC_TEMPSENSOR_ENABLE
#define LSM303DLHC_TEMPSENSOR_DISABLE
LSM303DLHC_AccInit(uint16_t);
LSM303DLHC_AccDeInit();
LSM303DLHC_AccReadID();
LSM303DLHC_AccRebootCmd();
LSM303DLHC_AccFilterConfig(uint8_t);
LSM303DLHC_AccFilterCmd(uint8_t);
LSM303DLHC_AccReadXYZ(int16_t *);
LSM303DLHC_AccFilterClickCmd(uint8_t);
LSM303DLHC_AccIT1Enable(uint8_t);
LSM303DLHC_AccIT1Disable(uint8_t);
LSM303DLHC_AccIT2Enable(uint8_t);
LSM303DLHC_AccIT2Disable(uint8_t);
LSM303DLHC_AccINT1InterruptEnable(uint8_t, uint8_t);
LSM303DLHC_AccINT1InterruptDisable(uint8_t, uint8_t);
LSM303DLHC_AccINT2InterruptEnable(uint8_t, uint8_t);
LSM303DLHC_AccINT2InterruptDisable(uint8_t, uint8_t);
LSM303DLHC_AccClickITEnable(uint8_t);
LSM303DLHC_AccClickITDisable(uint8_t);
LSM303DLHC_AccZClickITConfig();
COMPASSACCELERO_IO_Init();
COMPASSACCELERO_IO_ITConfig();
COMPASSACCELERO_IO_Write(uint16_t, uint8_t, uint8_t);
COMPASSACCELERO_IO_Read(uint16_t, uint8_t);
Lsm303dlhcDrv;
Files
loading...
SourceVuSTM32 Libraries and Sampleslsm303dlhclsm303dlhc.h
 
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/** ****************************************************************************** * @file lsm303dlhc.h * @author MCD Application Team * @brief This file contains all the functions prototypes for the lsm303dlhc.c driver. ****************************************************************************** * @attention * * Copyright (c) 2015 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** *//* ... */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __LSM303DLHC_H #define __LSM303DLHC_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "../Common/accelero.h" /** @addtogroup BSP * @{ *//* ... */ /** @addtogroup Components * @{ *//* ... */ /** @addtogroup LSM303DLHC * @{ *//* ... */ /** @defgroup LSM303DLHC_Exported_Types * @{ *//* ... */ /** * @} *//* ... */ /******************************************************************************/ /*************************** START REGISTER MAPPING **************************/ /******************************************************************************/Includes /* Exported constant IO ------------------------------------------------------*/ #define ACC_I2C_ADDRESS 0x32 #define MAG_I2C_ADDRESS 0x3C /* Acceleration Registers */ #define LSM303DLHC_WHO_AM_I_ADDR 0x0F /* device identification register */ #define LSM303DLHC_CTRL_REG1_A 0x20 /* Control register 1 acceleration */ #define LSM303DLHC_CTRL_REG2_A 0x21 /* Control register 2 acceleration */ #define LSM303DLHC_CTRL_REG3_A 0x22 /* Control register 3 acceleration */ #define LSM303DLHC_CTRL_REG4_A 0x23 /* Control register 4 acceleration */ #define LSM303DLHC_CTRL_REG5_A 0x24 /* Control register 5 acceleration */ #define LSM303DLHC_CTRL_REG6_A 0x25 /* Control register 6 acceleration */ #define LSM303DLHC_REFERENCE_A 0x26 /* Reference register acceleration */ #define LSM303DLHC_STATUS_REG_A 0x27 /* Status register acceleration */ #define LSM303DLHC_OUT_X_L_A 0x28 /* Output Register X acceleration */ #define LSM303DLHC_OUT_X_H_A 0x29 /* Output Register X acceleration */ #define LSM303DLHC_OUT_Y_L_A 0x2A /* Output Register Y acceleration */ #define LSM303DLHC_OUT_Y_H_A 0x2B /* Output Register Y acceleration */ #define LSM303DLHC_OUT_Z_L_A 0x2C /* Output Register Z acceleration */ #define LSM303DLHC_OUT_Z_H_A 0x2D /* Output Register Z acceleration */ #define LSM303DLHC_FIFO_CTRL_REG_A 0x2E /* Fifo control Register acceleration */ #define LSM303DLHC_FIFO_SRC_REG_A 0x2F /* Fifo src Register acceleration */ #define LSM303DLHC_INT1_CFG_A 0x30 /* Interrupt 1 configuration Register acceleration */ #define LSM303DLHC_INT1_SOURCE_A 0x31 /* Interrupt 1 source Register acceleration */ #define LSM303DLHC_INT1_THS_A 0x32 /* Interrupt 1 Threshold register acceleration */ #define LSM303DLHC_INT1_DURATION_A 0x33 /* Interrupt 1 DURATION register acceleration */ #define LSM303DLHC_INT2_CFG_A 0x34 /* Interrupt 2 configuration Register acceleration */ #define LSM303DLHC_INT2_SOURCE_A 0x35 /* Interrupt 2 source Register acceleration */ #define LSM303DLHC_INT2_THS_A 0x36 /* Interrupt 2 Threshold register acceleration */ #define LSM303DLHC_INT2_DURATION_A 0x37 /* Interrupt 2 DURATION register acceleration */ #define LSM303DLHC_CLICK_CFG_A 0x38 /* Click configuration Register acceleration */ #define LSM303DLHC_CLICK_SOURCE_A 0x39 /* Click 2 source Register acceleration */ #define LSM303DLHC_CLICK_THS_A 0x3A /* Click 2 Threshold register acceleration */ #define LSM303DLHC_TIME_LIMIT_A 0x3B /* Time Limit Register acceleration */ #define LSM303DLHC_TIME_LATENCY_A 0x3C /* Time Latency Register acceleration */ #define LSM303DLHC_TIME_WINDOW_A 0x3D /* Time window register acceleration */ /* Magnetic field Registers */ #define LSM303DLHC_CRA_REG_M 0x00 /* Control register A magnetic field */ #define LSM303DLHC_CRB_REG_M 0x01 /* Control register B magnetic field */ #define LSM303DLHC_MR_REG_M 0x02 /* Control register MR magnetic field */ #define LSM303DLHC_OUT_X_H_M 0x03 /* Output Register X magnetic field */ #define LSM303DLHC_OUT_X_L_M 0x04 /* Output Register X magnetic field */ #define LSM303DLHC_OUT_Z_H_M 0x05 /* Output Register Z magnetic field */ #define LSM303DLHC_OUT_Z_L_M 0x06 /* Output Register Z magnetic field */ #define LSM303DLHC_OUT_Y_H_M 0x07 /* Output Register Y magnetic field */ #define LSM303DLHC_OUT_Y_L_M 0x08 /* Output Register Y magnetic field */ #define LSM303DLHC_SR_REG_M 0x09 /* Status Register magnetic field */ #define LSM303DLHC_IRA_REG_M 0x0A /* IRA Register magnetic field */ #define LSM303DLHC_IRB_REG_M 0x0B /* IRB Register magnetic field */ #define LSM303DLHC_IRC_REG_M 0x0C /* IRC Register magnetic field */ #define LSM303DLHC_TEMP_OUT_H_M 0x31 /* Temperature Register magnetic field */ #define LSM303DLHC_TEMP_OUT_L_M 0x32 /* Temperature Register magnetic field */ /******************************************************************************/ /**************************** END REGISTER MAPPING ***************************/ /******************************************************************************/ #define I_AM_LMS303DLHC ((uint8_t)0x33) /** @defgroup Acc_Power_Mode_selection * @{ *//* ... */ #define LSM303DLHC_NORMAL_MODE ((uint8_t)0x00) #define LSM303DLHC_LOWPOWER_MODE ((uint8_t)0x08) /** * @} *//* ... */ /** @defgroup Acc_OutPut_DataRate_Selection * @{ *//* ... */ #define LSM303DLHC_ODR_1_HZ ((uint8_t)0x10) /*!< Output Data Rate = 1 Hz */ #define LSM303DLHC_ODR_10_HZ ((uint8_t)0x20) /*!< Output Data Rate = 10 Hz */ #define LSM303DLHC_ODR_25_HZ ((uint8_t)0x30) /*!< Output Data Rate = 25 Hz */ #define LSM303DLHC_ODR_50_HZ ((uint8_t)0x40) /*!< Output Data Rate = 50 Hz */ #define LSM303DLHC_ODR_100_HZ ((uint8_t)0x50) /*!< Output Data Rate = 100 Hz */ #define LSM303DLHC_ODR_200_HZ ((uint8_t)0x60) /*!< Output Data Rate = 200 Hz */ #define LSM303DLHC_ODR_400_HZ ((uint8_t)0x70) /*!< Output Data Rate = 400 Hz */ #define LSM303DLHC_ODR_1620_HZ_LP ((uint8_t)0x80) /*!< Output Data Rate = 1620 Hz only in Low Power Mode */ #define LSM303DLHC_ODR_1344_HZ ((uint8_t)0x90) /*!< Output Data Rate = 1344 Hz in Normal mode and 5376 Hz in Low Power Mode */ /** * @} *//* ... */ /** @defgroup Acc_Axes_Selection * @{ *//* ... */ #define LSM303DLHC_X_ENABLE ((uint8_t)0x01) #define LSM303DLHC_Y_ENABLE ((uint8_t)0x02) #define LSM303DLHC_Z_ENABLE ((uint8_t)0x04) #define LSM303DLHC_AXES_ENABLE ((uint8_t)0x07) #define LSM303DLHC_AXES_DISABLE ((uint8_t)0x00) /** * @} *//* ... */ /** @defgroup Acc_High_Resolution * @{ *//* ... */ #define LSM303DLHC_HR_ENABLE ((uint8_t)0x08) #define LSM303DLHC_HR_DISABLE ((uint8_t)0x00) /** * @} *//* ... */ /** @defgroup Acc_Full_Scale_Selection * @{ *//* ... */ #define LSM303DLHC_FULLSCALE_2G ((uint8_t)0x00) /*!< �2 g */ #define LSM303DLHC_FULLSCALE_4G ((uint8_t)0x10) /*!< �4 g */ #define LSM303DLHC_FULLSCALE_8G ((uint8_t)0x20) /*!< �8 g */ #define LSM303DLHC_FULLSCALE_16G ((uint8_t)0x30) /*!< �16 g */ /** * @} *//* ... */ /** @defgroup Acc_Full_Scale_Selection * @{ *//* ... */ #define LSM303DLHC_ACC_SENSITIVITY_2G ((uint8_t)1) /*!< accelerometer sensitivity with 2 g full scale [mg/LSB] */ #define LSM303DLHC_ACC_SENSITIVITY_4G ((uint8_t)2) /*!< accelerometer sensitivity with 4 g full scale [mg/LSB] */ #define LSM303DLHC_ACC_SENSITIVITY_8G ((uint8_t)4) /*!< accelerometer sensitivity with 8 g full scale [mg/LSB] */ #define LSM303DLHC_ACC_SENSITIVITY_16G ((uint8_t)12) /*!< accelerometer sensitivity with 12 g full scale [mg/LSB] */ /** * @} *//* ... */ /** @defgroup Acc_Block_Data_Update * @{ *//* ... */ #define LSM303DLHC_BlockUpdate_Continous ((uint8_t)0x00) /*!< Continuos Update */ #define LSM303DLHC_BlockUpdate_Single ((uint8_t)0x80) /*!< Single Update: output registers not updated until MSB and LSB reading */ /** * @} *//* ... */ /** @defgroup Acc_Endian_Data_selection * @{ *//* ... */ #define LSM303DLHC_BLE_LSB ((uint8_t)0x00) /*!< Little Endian: data LSB @ lower address */ #define LSM303DLHC_BLE_MSB ((uint8_t)0x40) /*!< Big Endian: data MSB @ lower address */ /** * @} *//* ... */ /** @defgroup Acc_Boot_Mode_selection * @{ *//* ... */ #define LSM303DLHC_BOOT_NORMALMODE ((uint8_t)0x00) #define LSM303DLHC_BOOT_REBOOTMEMORY ((uint8_t)0x80) /** * @} *//* ... */ /** @defgroup Acc_High_Pass_Filter_Mode * @{ *//* ... */ #define LSM303DLHC_HPM_NORMAL_MODE_RES ((uint8_t)0x00) #define LSM303DLHC_HPM_REF_SIGNAL ((uint8_t)0x40) #define LSM303DLHC_HPM_NORMAL_MODE ((uint8_t)0x80) #define LSM303DLHC_HPM_AUTORESET_INT ((uint8_t)0xC0) /** * @} *//* ... */ /** @defgroup Acc_High_Pass_CUT OFF_Frequency * @{ *//* ... */ #define LSM303DLHC_HPFCF_8 ((uint8_t)0x00) #define LSM303DLHC_HPFCF_16 ((uint8_t)0x10) #define LSM303DLHC_HPFCF_32 ((uint8_t)0x20) #define LSM303DLHC_HPFCF_64 ((uint8_t)0x30) /** * @} *//* ... */ /** @defgroup Acc_High_Pass_Filter_status * @{ *//* ... */ #define LSM303DLHC_HIGHPASSFILTER_DISABLE ((uint8_t)0x00) #define LSM303DLHC_HIGHPASSFILTER_ENABLE ((uint8_t)0x08) /** * @} *//* ... */ /** @defgroup Acc_High_Pass_Filter_Click_status * @{ *//* ... */ #define LSM303DLHC_HPF_CLICK_DISABLE ((uint8_t)0x00) #define LSM303DLHC_HPF_CLICK_ENABLE ((uint8_t)0x04) /** * @} *//* ... */ /** @defgroup Acc_High_Pass_Filter_AOI1_status * @{ *//* ... */ #define LSM303DLHC_HPF_AOI1_DISABLE ((uint8_t)0x00) #define LSM303DLHC_HPF_AOI1_ENABLE ((uint8_t)0x01) /** * @} *//* ... */ /** @defgroup Acc_High_Pass_Filter_AOI2_status * @{ *//* ... */ #define LSM303DLHC_HPF_AOI2_DISABLE ((uint8_t)0x00) #define LSM303DLHC_HPF_AOI2_ENABLE ((uint8_t)0x02) /** * @} *//* ... */ /** @defgroup Acc_Interrupt1_Configuration_definition * @{ *//* ... */ #define LSM303DLHC_IT1_CLICK ((uint8_t)0x80) #define LSM303DLHC_IT1_AOI1 ((uint8_t)0x40) #define LSM303DLHC_IT1_AOI2 ((uint8_t)0x20) #define LSM303DLHC_IT1_DRY1 ((uint8_t)0x10) #define LSM303DLHC_IT1_DRY2 ((uint8_t)0x08) #define LSM303DLHC_IT1_WTM ((uint8_t)0x04) #define LSM303DLHC_IT1_OVERRUN ((uint8_t)0x02) /** * @} *//* ... */ /** @defgroup Acc_Interrupt2_Configuration_definition * @{ *//* ... */ #define LSM303DLHC_IT2_CLICK ((uint8_t)0x80) #define LSM303DLHC_IT2_INT1 ((uint8_t)0x40) #define LSM303DLHC_IT2_INT2 ((uint8_t)0x20) #define LSM303DLHC_IT2_BOOT ((uint8_t)0x10) #define LSM303DLHC_IT2_ACT ((uint8_t)0x08) #define LSM303DLHC_IT2_HLACTIVE ((uint8_t)0x02) /** * @} *//* ... */ /** @defgroup Acc_INT_Combination_Status * @{ *//* ... */ #define LSM303DLHC_OR_COMBINATION ((uint8_t)0x00) /*!< OR combination of enabled IRQs */ #define LSM303DLHC_AND_COMBINATION ((uint8_t)0x80) /*!< AND combination of enabled IRQs */ #define LSM303DLHC_MOV_RECOGNITION ((uint8_t)0x40) /*!< 6D movement recognition */ #define LSM303DLHC_POS_RECOGNITION ((uint8_t)0xC0) /*!< 6D position recognition */ /** * @} *//* ... */ /** @defgroup Acc_INT_Axes * @{ *//* ... */ #define LSM303DLHC_Z_HIGH ((uint8_t)0x20) /*!< Z High enabled IRQs */ #define LSM303DLHC_Z_LOW ((uint8_t)0x10) /*!< Z low enabled IRQs */ #define LSM303DLHC_Y_HIGH ((uint8_t)0x08) /*!< Y High enabled IRQs */ #define LSM303DLHC_Y_LOW ((uint8_t)0x04) /*!< Y low enabled IRQs */ #define LSM303DLHC_X_HIGH ((uint8_t)0x02) /*!< X High enabled IRQs */ #define LSM303DLHC_X_LOW ((uint8_t)0x01) /*!< X low enabled IRQs */ /** * @} *//* ... */ /** @defgroup Acc_INT_Click * @{ *//* ... */ #define LSM303DLHC_Z_DOUBLE_CLICK ((uint8_t)0x20) /*!< Z double click IRQs */ #define LSM303DLHC_Z_SINGLE_CLICK ((uint8_t)0x10) /*!< Z single click IRQs */ #define LSM303DLHC_Y_DOUBLE_CLICK ((uint8_t)0x08) /*!< Y double click IRQs */ #define LSM303DLHC_Y_SINGLE_CLICK ((uint8_t)0x04) /*!< Y single click IRQs */ #define LSM303DLHC_X_DOUBLE_CLICK ((uint8_t)0x02) /*!< X double click IRQs */ #define LSM303DLHC_X_SINGLE_CLICK ((uint8_t)0x01) /*!< X single click IRQs */ /** * @} *//* ... */ /** @defgroup Acc_INT1_Interrupt_status * @{ *//* ... */ #define LSM303DLHC_INT1INTERRUPT_DISABLE ((uint8_t)0x00) #define LSM303DLHC_INT1INTERRUPT_ENABLE ((uint8_t)0x80) /** * @} *//* ... */ /** @defgroup Acc_INT1_Interrupt_ActiveEdge * @{ *//* ... */ #define LSM303DLHC_INT1INTERRUPT_LOW_EDGE ((uint8_t)0x20) #define LSM303DLHC_INT1INTERRUPT_HIGH_EDGE ((uint8_t)0x00) /** * @} *//* ... */ /** @defgroup Mag_Data_Rate * @{ *//* ... */ #define LSM303DLHC_ODR_0_75_HZ ((uint8_t) 0x00) /*!< Output Data Rate = 0.75 Hz */ #define LSM303DLHC_ODR_1_5_HZ ((uint8_t) 0x04) /*!< Output Data Rate = 1.5 Hz */ #define LSM303DLHC_ODR_3_0_HZ ((uint8_t) 0x08) /*!< Output Data Rate = 3 Hz */ #define LSM303DLHC_ODR_7_5_HZ ((uint8_t) 0x0C) /*!< Output Data Rate = 7.5 Hz */ #define LSM303DLHC_ODR_15_HZ ((uint8_t) 0x10) /*!< Output Data Rate = 15 Hz */ #define LSM303DLHC_ODR_30_HZ ((uint8_t) 0x14) /*!< Output Data Rate = 30 Hz */ #define LSM303DLHC_ODR_75_HZ ((uint8_t) 0x18) /*!< Output Data Rate = 75 Hz */ #define LSM303DLHC_ODR_220_HZ ((uint8_t) 0x1C) /*!< Output Data Rate = 220 Hz */ /** * @} *//* ... */ /** @defgroup Mag_Full_Scale * @{ *//* ... */ #define LSM303DLHC_FS_1_3_GA ((uint8_t) 0x20) /*!< Full scale = �1.3 Gauss */ #define LSM303DLHC_FS_1_9_GA ((uint8_t) 0x40) /*!< Full scale = �1.9 Gauss */ #define LSM303DLHC_FS_2_5_GA ((uint8_t) 0x60) /*!< Full scale = �2.5 Gauss */ #define LSM303DLHC_FS_4_0_GA ((uint8_t) 0x80) /*!< Full scale = �4.0 Gauss */ #define LSM303DLHC_FS_4_7_GA ((uint8_t) 0xA0) /*!< Full scale = �4.7 Gauss */ #define LSM303DLHC_FS_5_6_GA ((uint8_t) 0xC0) /*!< Full scale = �5.6 Gauss */ #define LSM303DLHC_FS_8_1_GA ((uint8_t) 0xE0) /*!< Full scale = �8.1 Gauss */ /** * @} *//* ... */ /** * @defgroup Magnetometer_Sensitivity * @{ *//* ... */ #define LSM303DLHC_M_SENSITIVITY_XY_1_3Ga 1100 /*!< magnetometer X Y axes sensitivity for 1.3 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_XY_1_9Ga 855 /*!< magnetometer X Y axes sensitivity for 1.9 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_XY_2_5Ga 670 /*!< magnetometer X Y axes sensitivity for 2.5 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_XY_4Ga 450 /*!< magnetometer X Y axes sensitivity for 4 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_XY_4_7Ga 400 /*!< magnetometer X Y axes sensitivity for 4.7 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_XY_5_6Ga 330 /*!< magnetometer X Y axes sensitivity for 5.6 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_XY_8_1Ga 230 /*!< magnetometer X Y axes sensitivity for 8.1 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_1_3Ga 980 /*!< magnetometer Z axis sensitivity for 1.3 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_1_9Ga 760 /*!< magnetometer Z axis sensitivity for 1.9 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_2_5Ga 600 /*!< magnetometer Z axis sensitivity for 2.5 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_4Ga 400 /*!< magnetometer Z axis sensitivity for 4 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_4_7Ga 355 /*!< magnetometer Z axis sensitivity for 4.7 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_5_6Ga 295 /*!< magnetometer Z axis sensitivity for 5.6 Ga full scale [LSB/Ga] */ #define LSM303DLHC_M_SENSITIVITY_Z_8_1Ga 205 /*!< magnetometer Z axis sensitivity for 8.1 Ga full scale [LSB/Ga] */ /** * @} *//* ... */ /** @defgroup Mag_Working_Mode * @{ *//* ... */ #define LSM303DLHC_CONTINUOS_CONVERSION ((uint8_t) 0x00) /*!< Continuous-Conversion Mode */ #define LSM303DLHC_SINGLE_CONVERSION ((uint8_t) 0x01) /*!< Single-Conversion Mode */ #define LSM303DLHC_SLEEP ((uint8_t) 0x02) /*!< Sleep Mode */ /** * @} *//* ... */ /** @defgroup Mag_Temperature_Sensor * @{ *//* ... */ #define LSM303DLHC_TEMPSENSOR_ENABLE ((uint8_t) 0x80) /*!< Temp sensor Enable */ #define LSM303DLHC_TEMPSENSOR_DISABLE ((uint8_t) 0x00) /*!< Temp sensor Disable */ 164 defines/** * @} *//* ... */ /** @defgroup LSM303DLHC_Exported_Functions * @{ *//* ... */ /* ACC functions */ void LSM303DLHC_AccInit(uint16_t InitStruct); void LSM303DLHC_AccDeInit(void); uint8_t LSM303DLHC_AccReadID(void); void LSM303DLHC_AccRebootCmd(void); void LSM303DLHC_AccFilterConfig(uint8_t FilterStruct); void LSM303DLHC_AccFilterCmd(uint8_t HighPassFilterState); void LSM303DLHC_AccReadXYZ(int16_t* pData); void LSM303DLHC_AccFilterClickCmd(uint8_t HighPassFilterClickState); void LSM303DLHC_AccIT1Enable(uint8_t LSM303DLHC_IT); void LSM303DLHC_AccIT1Disable(uint8_t LSM303DLHC_IT); void LSM303DLHC_AccIT2Enable(uint8_t LSM303DLHC_IT); void LSM303DLHC_AccIT2Disable(uint8_t LSM303DLHC_IT); void LSM303DLHC_AccINT1InterruptEnable(uint8_t ITCombination, uint8_t ITAxes); void LSM303DLHC_AccINT1InterruptDisable(uint8_t ITCombination, uint8_t ITAxes); void LSM303DLHC_AccINT2InterruptEnable(uint8_t ITCombination, uint8_t ITAxes); void LSM303DLHC_AccINT2InterruptDisable(uint8_t ITCombination, uint8_t ITAxes); void LSM303DLHC_AccClickITEnable(uint8_t ITClick); void LSM303DLHC_AccClickITDisable(uint8_t ITClick); void LSM303DLHC_AccZClickITConfig(void); /* COMPASS / ACCELERO IO functions */ void COMPASSACCELERO_IO_Init(void); void COMPASSACCELERO_IO_ITConfig(void); void COMPASSACCELERO_IO_Write(uint16_t DeviceAddr, uint8_t RegisterAddr, uint8_t Value); uint8_t COMPASSACCELERO_IO_Read(uint16_t DeviceAddr, uint8_t RegisterAddr); /* ACC driver structure */ extern ACCELERO_DrvTypeDef Lsm303dlhcDrv; /** * @} *//* ... */ /** * @} *//* ... */ /** * @} *//* ... */ /** * @} *//* ... */ #ifdef __cplusplus }extern "C" { ... } #endif /* ... */ #endif /* __LSM303DLHC_H */
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.