Go to the documentation of this file.
46 #define EX_LSM6DSL_VERSION "1.0.1"
51 #define EX_LSM6DSL_MAJOR 1
56 #define EX_LSM6DSL_MINOR 0
61 #define EX_LSM6DSL_PATCH 1
72 #define LSM6DSL_ACC_NUMBER_OF_AXES 3U
74 #define LSM6DSL_ACC_2G 2.0f
75 #define LSM6DSL_ACC_4G 4.0f
76 #define LSM6DSL_ACC_8G 8.0f
77 #define LSM6DSL_ACC_16G 16.0f
79 #define LSM6DSL_ACC_SENS_2G 0.061f
80 #define LSM6DSL_ACC_SENS_4G 0.122f
81 #define LSM6DSL_ACC_SENS_8G 0.244f
82 #define LSM6DSL_ACC_SENS_16G 0.488f
84 #define LSM6DSL_ACC_BIAS 0.0f
95 #define LSM6DSL_GYRO_NUMBER_OF_AXES 3U
97 #define LSM6DSL_GYRO_125DPS 125.0f
98 #define LSM6DSL_GYRO_250DPS 250.0f
99 #define LSM6DSL_GYRO_500DPS 500.0f
100 #define LSM6DSL_GYRO_1000DPS 1000.0f
101 #define LSM6DSL_GYRO_2000DPS 2000.0f
103 #define LSM6DSL_GYRO_SENS_125DPS 0.004375f
104 #define LSM6DSL_GYRO_SENS_250DPS 0.008750f
105 #define LSM6DSL_GYRO_SENS_500DPS 0.017500f
106 #define LSM6DSL_GYRO_SENS_1000DPS 0.035000f
107 #define LSM6DSL_GYRO_SENS_2000DPS 0.070000f
109 #define LSM6DSL_GYRO_BIAS 0.0f
116 #define LSM6DSL_DI_MASK 0xFF
117 #define LSM6DSL_DI(n) (1 << n)
118 #define LSM6DSL_AD_MASK 0x7F
119 #define LSM6DSL_AD(n) (1 << n)
120 #define LSM6DSL_MS (1 << 7)
127 #define LSM6DSL_AD_FUNC_CFG_ACCESS 0x01
128 #define LSM6DSL_AD_SENSOR_SYNC_TIME_FRAME 0x04
129 #define LSM6DSL_AD_SENSOR_SYNC_RES_RATIO 0x05
130 #define LSM6DSL_AD_FIFO_CTRL1 0x06
131 #define LSM6DSL_AD_FIFO_CTRL2 0x07
132 #define LSM6DSL_AD_FIFO_CTRL3 0x08
133 #define LSM6DSL_AD_FIFO_CTRL4 0x09
134 #define LSM6DSL_AD_FIFO_CTRL5 0x0A
135 #define LSM6DSL_AD_DRDY_PULSE_CFG_G 0x0B
136 #define LSM6DSL_AD_INT1_CTRL 0x0D
137 #define LSM6DSL_AD_INT2_CTRL 0x0E
138 #define LSM6DSL_AD_WHO_AM_I 0x0F
139 #define LSM6DSL_AD_CTRL1_XL 0x10
140 #define LSM6DSL_AD_CTRL2_G 0x11
141 #define LSM6DSL_AD_CTRL3_C 0x12
142 #define LSM6DSL_AD_CTRL4_C 0x13
143 #define LSM6DSL_AD_CTRL5_C 0x14
144 #define LSM6DSL_AD_CTRL6_C 0x15
145 #define LSM6DSL_AD_CTRL7_G 0x16
146 #define LSM6DSL_AD_CTRL8_XL 0x17
147 #define LSM6DSL_AD_CTRL9_XL 0x18
148 #define LSM6DSL_AD_CTRL10_C 0x19
149 #define LSM6DSL_AD_MASTER_CONFIG 0x1A
150 #define LSM6DSL_AD_WAKE_UP_SRC 0x1B
151 #define LSM6DSL_AD_TAP_SRC 0x1C
152 #define LSM6DSL_AD_D6D_SRC 0x1D
153 #define LSM6DSL_AD_STATUS_REG 0x1E
154 #define LSM6DSL_AD_OUT_TEMP_L 0x20
155 #define LSM6DSL_AD_OUT_TEMP_H 0x21
156 #define LSM6DSL_AD_OUTX_L_G 0x22
157 #define LSM6DSL_AD_OUTX_H_G 0x23
158 #define LSM6DSL_AD_OUTY_L_G 0x24
159 #define LSM6DSL_AD_OUTY_H_G 0x25
160 #define LSM6DSL_AD_OUTZ_L_G 0x26
161 #define LSM6DSL_AD_OUTZ_H_G 0x27
162 #define LSM6DSL_AD_OUTX_L_XL 0x28
163 #define LSM6DSL_AD_OUTX_H_XL 0x29
164 #define LSM6DSL_AD_OUTY_L_XL 0x2A
165 #define LSM6DSL_AD_OUTY_H_XL 0x2B
166 #define LSM6DSL_AD_OUTZ_L_XL 0x2C
167 #define LSM6DSL_AD_OUTZ_H_XL 0x2D
168 #define LSM6DSL_AD_SENSORHUB1_REG 0x2E
169 #define LSM6DSL_AD_SENSORHUB2_REG 0x2F
170 #define LSM6DSL_AD_SENSORHUB3_REG 0x30
171 #define LSM6DSL_AD_SENSORHUB4_REG 0x31
172 #define LSM6DSL_AD_SENSORHUB5_REG 0x32
173 #define LSM6DSL_AD_SENSORHUB6_REG 0x33
174 #define LSM6DSL_AD_SENSORHUB7_REG 0x34
175 #define LSM6DSL_AD_SENSORHUB8_REG 0x35
176 #define LSM6DSL_AD_SENSORHUB9_REG 0x36
177 #define LSM6DSL_AD_SENSORHUB10_REG 0x37
178 #define LSM6DSL_AD_SENSORHUB11_REG 0x38
179 #define LSM6DSL_AD_SENSORHUB12_REG 0x39
180 #define LSM6DSL_AD_FIFO_STATUS1 0x3A
181 #define LSM6DSL_AD_FIFO_STATUS2 0x3B
182 #define LSM6DSL_AD_FIFO_STATUS3 0x3C
183 #define LSM6DSL_AD_FIFO_STATUS4 0x3D
184 #define LSM6DSL_AD_FIFO_DATA_OUT_L 0x3E
185 #define LSM6DSL_AD_FIFO_DATA_OUT_H 0x3F
186 #define LSM6DSL_AD_TIMESTAMP0_REG 0x40
187 #define LSM6DSL_AD_TIMESTAMP1_REG 0x41
188 #define LSM6DSL_AD_TIMESTAMP2_REG 0x42
189 #define LSM6DSL_AD_STEP_TIMESTAMP_L 0x49
190 #define LSM6DSL_AD_STEP_TIMESTAMP_H 0x4A
191 #define LSM6DSL_AD_STEP_COUNTER_L 0x4B
192 #define LSM6DSL_AD_STEP_COUNTER_H 0x4C
193 #define LSM6DSL_AD_SENSORHUB13_REG 0x4D
194 #define LSM6DSL_AD_SENSORHUB14_REG 0x4E
195 #define LSM6DSL_AD_SENSORHUB15_REG 0x4F
196 #define LSM6DSL_AD_SENSORHUB16_REG 0x50
197 #define LSM6DSL_AD_SENSORHUB17_REG 0x51
198 #define LSM6DSL_AD_SENSORHUB18_REG 0x52
199 #define LSM6DSL_AD_FUNC_SRC1 0x53
200 #define LSM6DSL_AD_FUNC_SRC2 0x54
201 #define LSM6DSL_AD_WRIST_TILT_IA 0x55
202 #define LSM6DSL_AD_TAP_CFG 0x58
203 #define LSM6DSL_AD_TAP_THS_6D 0x59
204 #define LSM6DSL_AD_INT_DUR2 0x5A
205 #define LSM6DSL_AD_WAKE_UP_THS 0x5B
206 #define LSM6DSL_AD_WAKE_UP_DUR 0x5C
207 #define LSM6DSL_AD_FREE_FALL 0x5D
208 #define LSM6DSL_AD_MD1_CFG 0x5E
209 #define LSM6DSL_AD_MD2_CFG 0x5F
210 #define LSM6DSL_AD_MASTER_CMD_CODE 0x60
211 #define LSM6DSL_AD_SENS_SYNC_SPI_ERROR_CODE 0x61
212 #define LSM6DSL_AD_OUT_MAG_RAW_X_L 0x66
213 #define LSM6DSL_AD_OUT_MAG_RAW_X_H 0x67
214 #define LSM6DSL_AD_OUT_MAG_RAW_Y_L 0x68
215 #define LSM6DSL_AD_OUT_MAG_RAW_Y_H 0x69
216 #define LSM6DSL_AD_OUT_MAG_RAW_Z_L 0x6A
217 #define LSM6DSL_AD_OUT_MAG_RAW_Z_H 0x6B
218 #define LSM6DSL_AD_X_OFS_USR 0x73
219 #define LSM6DSL_AD_Y_OFS_USR 0x74
220 #define LSM6DSL_AD_Z_OFS_USR 0x75
227 #define LSMDSL_CTRL1_XL_BW0_XL (1 << 0)
228 #define LSMDSL_CTRL1_XL_LPF1_BW_SEL (1 << 1)
229 #define LSMDSL_CTRL1_XL_FS_MASK 0x0C
230 #define LSMDSL_CTRL1_XL_FS_XL0 (1 << 2)
231 #define LSMDSL_CTRL1_XL_FS_XL1 (1 << 3)
232 #define LSMDSL_CTRL1_XL_ODR_XL0 (1 << 4)
233 #define LSMDSL_CTRL1_XL_ODR_XL1 (1 << 5)
234 #define LSMDSL_CTRL1_XL_ODR_XL2 (1 << 6)
235 #define LSMDSL_CTRL1_XL_ODR_XL3 (1 << 7)
242 #define LSMDSL_CTRL2_G_FS_MASK 0x0E
243 #define LSMDSL_CTRL2_G_FS_125 (1 << 1)
244 #define LSMDSL_CTRL2_G_FS_G0 (1 << 2)
245 #define LSMDSL_CTRL2_G_FS_G1 (1 << 3)
246 #define LSMDSL_CTRL2_G_ODR_G0 (1 << 4)
247 #define LSMDSL_CTRL2_G_ODR_G1 (1 << 5)
248 #define LSMDSL_CTRL2_G_ODR_G2 (1 << 6)
249 #define LSMDSL_CTRL2_G_ODR_G3 (1 << 7)
256 #define LSMDSL_CTRL3_C_SW_RESET (1 << 0)
257 #define LSMDSL_CTRL3_C_BLE (1 << 1)
258 #define LSMDSL_CTRL3_C_IF_INC (1 << 2)
259 #define LSMDSL_CTRL3_C_SIM (1 << 3)
260 #define LSMDSL_CTRL3_C_PP_OD (1 << 4)
261 #define LSMDSL_CTRL3_C_H_LACTIVE (1 << 5)
262 #define LSMDSL_CTRL3_C_BDU (1 << 6)
263 #define LSMDSL_CTRL3_C_BOOT (1 << 7)
270 #define LSMDSL_CTRL4_C_NOT_USED_01 (1 << 0)
271 #define LSMDSL_CTRL4_C_LPF1_SEL_G (1 << 1)
272 #define LSMDSL_CTRL4_C_I2C_DISABLE (1 << 2)
273 #define LSMDSL_CTRL4_C_DRDY_MASK (1 << 3)
274 #define LSMDSL_CTRL4_C_DEN_DRDY_IN (1 << 4)
275 #define LSMDSL_CTRL4_C_INT2_ON_INT (1 << 5)
276 #define LSMDSL_CTRL4_C_SLEEP (1 << 6)
277 #define LSMDSL_CTRL4_C_DEN_XL_EN (1 << 7)
284 #define LSMDSL_CTRL5_C_ST0_XL (1 << 0)
285 #define LSMDSL_CTRL5_C_ST1_XL (1 << 1)
286 #define LSMDSL_CTRL5_C_ST0_G (1 << 2)
287 #define LSMDSL_CTRL5_C_ST1_G (1 << 3)
288 #define LSMDSL_CTRL5_C_DEN_LH (1 << 4)
289 #define LSMDSL_CTRL5_C_ROUNDING0 (1 << 5)
290 #define LSMDSL_CTRL5_C_ROUNDING1 (1 << 6)
291 #define LSMDSL_CTRL5_C_ROUNDING2 (1 << 7)
298 #define LSMDSL_CTRL6_C_FTYPE_0 (1 << 0)
299 #define LSMDSL_CTRL6_C_FTYPE_1 (1 << 1)
300 #define LSMDSL_CTRL6_C_USR_OFF_W (1 << 3)
301 #define LSMDSL_CTRL6_C_XL_HM_MODE (1 << 4)
302 #define LSMDSL_CTRL6_C_LVL2_EN (1 << 5)
303 #define LSMDSL_CTRL6_C_LVL_EN (1 << 6)
304 #define LSMDSL_CTRL6_C_TRIG_EN (1 << 7)
311 #define LSMDSL_CTRL7_G_ROUNDING_ST (1 << 2)
312 #define LSMDSL_CTRL7_G_HPM0_G (1 << 4)
313 #define LSMDSL_CTRL7_G_HPM1_G (1 << 5)
314 #define LSMDSL_CTRL7_G_HP_EN_G (1 << 6)
315 #define LSMDSL_CTRL7_G_G_HM_MODE (1 << 7)
322 #define LSMDSL_CTRL8_XL_LOW_PASS_ON (1 << 0)
323 #define LSMDSL_CTRL8_XL_HP_SLOPE_XL (1 << 2)
324 #define LSMDSL_CTRL8_XL_INPUT_COMPO (1 << 3)
325 #define LSMDSL_CTRL8_XL_HP_REF_MODE (1 << 4)
326 #define LSMDSL_CTRL8_XL_HPCF_XL0 (1 << 5)
327 #define LSMDSL_CTRL8_XL_HPCF_XL1 (1 << 6)
328 #define LSMDSL_CTRL8_XL_LPF2_XL_EN (1 << 7)
335 #define LSMDSL_CTRL9_XL_SOFT_EN (1 << 2)
336 #define LSMDSL_CTRL9_XL_DEN_XL_G (1 << 4)
337 #define LSMDSL_CTRL9_XL_DEN_Z (1 << 5)
338 #define LSMDSL_CTRL9_XL_DEN_Y (1 << 6)
339 #define LSMDSL_CTRL9_XL_DEN_X (1 << 7)
346 #define LSMDSL_CTRL10_C_SIGN_MOTION (1 << 0)
347 #define LSMDSL_CTRL10_C_PEDO_RST_ST (1 << 1)
348 #define LSMDSL_CTRL10_C_FUNC_EN (1 << 2)
349 #define LSMDSL_CTRL10_C_TILT_EN (1 << 3)
350 #define LSMDSL_CTRL10_C_PEDO_EN (1 << 4)
351 #define LSMDSL_CTRL10_C_TIMER_EN (1 << 5)
352 #define LSMDSL_CTRL10_C_WRIST_TILT (1 << 7)
368 #if !defined(LSM6DSL_USE_SPI) || defined(__DOXYGEN__)
369 #define LSM6DSL_USE_SPI FALSE
378 #if !defined(LSM6DSL_SHARED_SPI) || defined(__DOXYGEN__)
379 #define LSM6DSL_SHARED_SPI FALSE
387 #if !defined(LSM6DSL_USE_I2C) || defined(__DOXYGEN__)
388 #define LSM6DSL_USE_I2C TRUE
397 #if !defined(LSM6DSL_SHARED_I2C) || defined(__DOXYGEN__)
398 #define LSM6DSL_SHARED_I2C FALSE
406 #if !defined(LSM6DSL_USE_ADVANCED) || defined(__DOXYGEN__)
407 #define LSM6DSL_USE_ADVANCED FALSE
415 #if !defined(LSM6DSL_GYRO_BIAS_ACQ_TIMES) || defined(__DOXYGEN__)
416 #define LSM6DSL_GYRO_BIAS_ACQ_TIMES 50
423 #if !defined(LSM6DSL_GYRO_BIAS_SETTLING_US) || defined(__DOXYGEN__)
424 #define LSM6DSL_GYRO_BIAS_SETTLING_US 5000
432 #if !(LSM6DSL_USE_SPI ^ LSM6DSL_USE_I2C)
433 #error "LSM6DSL_USE_SPI and LSM6DSL_USE_I2C cannot be both true or both false"
436 #if LSM6DSL_USE_SPI && !HAL_USE_SPI
437 #error "LSM6DSL_USE_SPI requires HAL_USE_SPI"
440 #if LSM6DSL_SHARED_SPI && !SPI_USE_MUTUAL_EXCLUSION
441 #error "LSM6DSL_SHARED_SPI requires SPI_USE_MUTUAL_EXCLUSION"
444 #if LSM6DSL_USE_I2C && !HAL_USE_I2C
445 #error "LSM6DSL_USE_I2C requires HAL_USE_I2C"
448 #if LSM6DSL_SHARED_I2C && !I2C_USE_MUTUAL_EXCLUSION
449 #error "LSM6DSL_SHARED_I2C requires I2C_USE_MUTUAL_EXCLUSION"
456 #error "LSM6DSL over SPI still not supported"
592 #if (LSM6DSL_USE_SPI) || defined(__DOXYGEN__)
603 #if (LSM6DSL_USE_I2C) || defined(__DOXYGEN__)
634 #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
656 #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
679 #define _lsm6dsl_methods_alone \
681 msg_t (*acc_set_full_scale)(LSM6DSLDriver *devp, lsm6dsl_acc_fs_t fs); \
683 msg_t (*gyro_set_full_scale)(LSM6DSLDriver *devp, lsm6dsl_gyro_fs_t fs);
688 #define _lsm6dsl_methods \
689 _base_object_methods \
690 _lsm6dsl_methods_alone
704 #define _lsm6dsl_data \
707 lsm6dsl_state_t state; \
709 const LSM6DSLConfig *config; \
713 float accsensitivity[LSM6DSL_ACC_NUMBER_OF_AXES]; \
715 float accbias[LSM6DSL_ACC_NUMBER_OF_AXES]; \
717 float accfullscale; \
721 float gyrosensitivity[LSM6DSL_GYRO_NUMBER_OF_AXES]; \
723 float gyrobias[LSM6DSL_GYRO_NUMBER_OF_AXES]; \
754 #define lsm6dslAccelerometerGetAxesNumber(devp) \
755 accelerometerGetAxesNumber(&((devp)->acc_if))
775 #define lsm6dslAccelerometerReadRaw(devp, axes) \
776 accelerometerReadRaw(&((devp)->acc_if), axes)
797 #define lsm6dslAccelerometerReadCooked(devp, axes) \
798 accelerometerReadCooked(&((devp)->acc_if), axes)
814 #define lsm6dslAccelerometerSetBias(devp, bp) \
815 accelerometerSetBias(&((devp)->acc_if), bp)
829 #define lsm6dslAccelerometerResetBias(devp) \
830 accelerometerResetBias(&((devp)->acc_if))
846 #define lsm6dslAccelerometerSetSensitivity(devp, sp) \
847 accelerometerSetSensitivity(&((devp)->acc_if), sp)
861 #define lsm6dslAccelerometerResetSensitivity(devp) \
862 accelerometerResetSensitivity(&((devp)->acc_if))
879 #define lsm6dslAccelerometerSetFullScale(devp, fs) \
880 (devp)->vmt->acc_set_full_scale(devp, fs)
891 #define lsm6dslGyroscopeGetAxesNumber(devp) \
892 gyroscopeGetAxesNumber(&((devp)->gyro_if))
912 #define lsm6dslGyroscopeReadRaw(devp, axes) \
913 gyroscopeReadRaw(&((devp)->gyro_if), axes)
934 #define lsm6dslGyroscopeReadCooked(devp, axes) \
935 gyroscopeReadCooked(&((devp)->gyro_if), axes)
954 #define lsm6dslGyroscopeSampleBias(devp) \
955 gyroscopeSampleBias(&((devp)->gyro_if))
971 #define lsm6dslGyroscopeSetBias(devp, bp) \
972 gyroscopeSetBias(&((devp)->gyro_if), bp)
986 #define lsm6dslGyroscopeResetBias(devp) \
987 gyroscopeResetBias(&((devp)->gyro_if))
1003 #define lsm6dslGyroscopeSetSensitivity(devp, sp) \
1004 gyroscopeSetSensitivity(&((devp)->gyro_if), sp)
1018 #define lsm6dslGyroscopeResetSensitivity(devp) \
1019 gyroscopeResetSensitivity(&((devp)->gyro_if))
1036 #define lsm6dslGyroscopeSetFullScale(devp, fs) \
1037 (devp)->vmt->acc_set_full_scale(devp, fs)
void lsm6dslStop(LSM6DSLDriver *devp)
Deactivates the LSM6DSL Complex Driver peripheral.
float * accbias
LSM6DSL accelerometer subsystem initial bias.
float * accsensitivity
LSM6DSL accelerometer subsystem initial sensitivity.
lsm6dsl_gyro_lp_t
LSM6DSL gyroscope subsystem low mode configuration.
@ LSM6DSL_GYRO_LP_DISABLED
LSM6DSL 6-axis accelerometer/gyroscope class.
lsm6dsl_end_t
LSM6DSL endianness.
const I2CConfig * i2ccfg
I2C configuration associated to this LSM6DSL accelerometer subsystem.
lsm6dsl_gyro_odr_t gyrooutdatarate
LSM6DSL gyroscope subsystem output data rate.
@ LSM6DSL_GYRO_FS_2000DPS
#define _lsm6dsl_methods
LSM6DSL specific methods with inherited ones.
lsm6dsl_acc_odr_t accoutdatarate
LSM6DSL accelerometer subsystem output data rate.
@ LSM6DSL_GYRO_ODR_1P66Hz
lsm6dsl_acc_fs_t
LSM6DSL accelerometer subsystem full scale.
Base accelerometer class.
@ LSM6DSL_GYRO_LPF_DISABLED
const SPIConfig * accspicfg
SPI configuration associated to this LSM6DSL accelerometer subsystem.
Generic accelerometer interface header.
#define _lsm6dsl_data
LSM6DSLDriver specific data.
lsm6dsl_gyro_fs_t gyrofullscale
LSM6DSL gyroscope subsystem full scale.
lsm6dsl_gyro_lpf_t
LSM6DSL gyroscope subsystem output selection.
@ LSM6DSL_ACC_LP_DISABLED
lsm6dsl_sad_t
Accelerometer and Gyroscope Slave Address.
@ LSM6DSL_GYRO_LPF_FTYPE2
I2CDriver * i2cp
I2C driver associated to this LSM6DSL.
lsm6dsl_bdu_t blockdataupdate
LSM6DSL block data update.
SPIDriver * spip
SPI driver associated to this LSM6DSL.
@ LSM6DSL_GYRO_ODR_6P66Hz
@ LSM6DSL_GYRO_LPF_FTYPE3
lsm6dsl_gyro_odr_t
LSM6DSL gyroscope subsystem output data rate.
lsm6dsl_acc_odr_t
LSM6DSL accelerometer subsystem output data rate.
LSM6DSL configuration structure.
float * gyrosensitivity
LSM6DSL gyroscope subsystem initial sensitivity.
lsm6dsl_sad_t slaveaddress
LSM6DSL Slave Address.
@ LSM6DSL_GYRO_ODR_3P33Hz
@ LSM6DSL_GYRO_ODR_12P5Hz
BaseAccelerometer acc_if
Base accelerometer interface.
lsm6dsl_gyro_lp_t gyrolpmode
LSM6DSL gyroscope subsystem low mode configuration.
lsm6dsl_acc_lp_t acclpmode
LSM6DSL accelerometer subsystem low power mode.
BaseGyroscope gyro_if
Base gyroscope interface.
void lsm6dslStart(LSM6DSLDriver *devp, const LSM6DSLConfig *config)
Configures and activates LSM6DSL Complex Driver peripheral.
@ LSM6DSL_GYRO_LP_ENABLED
@ LSM6DSL_GYRO_FS_1000DPS
lsm6dsl_gyro_fs_t
LSM6DSL gyroscope subsystem full scale.
@ LSM6DSL_GYRO_LPF_FTYPE1
lsm6dsl_gyro_lpf_t gyrolowpassfilter
LSM6DSL gyroscope subsystem low pass filter configuration.
float * gyrobias
LSM6DSL gyroscope subsystem initial bias.
lsm6dsl_acc_lp_t
LSM6DSL accelerometer subsystem output data rate.
const struct LSM6DSLVMT * vmt
Virtual Methods Table.
void lsm6dslObjectInit(LSM6DSLDriver *devp)
Initializes an instance.
LSM6DSL virtual methods table.
lsm6dsl_end_t endianness
LSM6DSL endianness.
lsm6dsl_acc_fs_t accfullscale
LSM6DSL accelerometer subsystem full scale.
@ LSM6DSL_GYRO_LPF_FTYPE0
lsm6dsl_state_t
Driver state machine possible states.
lsm6dsl_bdu_t
LSM6DSL block data update.
Generic gyroscope interface header.