46#define EX_LSM6DSL_VERSION "1.0.2"
51#define EX_LSM6DSL_MAJOR 1
56#define EX_LSM6DSL_MINOR 0
61#define EX_LSM6DSL_PATCH 2
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)
Generic accelerometer interface header.
Generic gyroscope interface header.
struct hal_i2c_config I2CConfig
Type of a structure representing an I2C configuration.
struct hal_i2c_driver I2CDriver
Type of a structure representing an I2C driver.
void lsm6dslObjectInit(LSM6DSLDriver *devp)
Initializes an instance.
lsm6dsl_gyro_odr_t
LSM6DSL gyroscope subsystem output data rate.
lsm6dsl_gyro_lp_t
LSM6DSL gyroscope subsystem low mode configuration.
lsm6dsl_gyro_fs_t
LSM6DSL gyroscope subsystem full scale.
void lsm6dslStart(LSM6DSLDriver *devp, const LSM6DSLConfig *config)
Configures and activates LSM6DSL Complex Driver peripheral.
lsm6dsl_acc_fs_t
LSM6DSL accelerometer subsystem full scale.
lsm6dsl_sad_t
Accelerometer and Gyroscope Slave Address.
lsm6dsl_acc_lp_t
LSM6DSL accelerometer subsystem output data rate.
void lsm6dslStop(LSM6DSLDriver *devp)
Deactivates the LSM6DSL Complex Driver peripheral.
lsm6dsl_state_t
Driver state machine possible states.
#define _lsm6dsl_methods
LSM6DSL specific methods with inherited ones.
lsm6dsl_gyro_lpf_t
LSM6DSL gyroscope subsystem output selection.
lsm6dsl_end_t
LSM6DSL endianness.
lsm6dsl_bdu_t
LSM6DSL block data update.
lsm6dsl_acc_odr_t
LSM6DSL accelerometer subsystem output data rate.
#define _lsm6dsl_data
LSM6DSLDriver specific data.
@ LSM6DSL_GYRO_ODR_1P66KHZ
@ LSM6DSL_GYRO_ODR_3P33KHZ
@ LSM6DSL_GYRO_ODR_6P66KHZ
@ LSM6DSL_GYRO_ODR_12P5HZ
@ LSM6DSL_GYRO_LP_DISABLED
@ LSM6DSL_GYRO_LP_ENABLED
@ LSM6DSL_GYRO_FS_1000DPS
@ LSM6DSL_GYRO_FS_2000DPS
@ LSM6DSL_ACC_LP_DISABLED
@ LSM6DSL_GYRO_LPF_FTYPE0
@ LSM6DSL_GYRO_LPF_DISABLED
@ LSM6DSL_GYRO_LPF_FTYPE3
@ LSM6DSL_GYRO_LPF_FTYPE2
@ LSM6DSL_GYRO_LPF_FTYPE1
struct hal_spi_config SPIConfig
Type of a SPI driver configuration structure.
struct hal_spi_driver SPIDriver
Type of a structure representing an SPI driver.
Base accelerometer class.
LSM6DSL configuration structure.
SPIDriver * spip
SPI driver associated to this LSM6DSL.
lsm6dsl_sad_t slaveaddress
LSM6DSL Slave Address.
float * gyrosensitivity
LSM6DSL gyroscope subsystem initial sensitivity.
lsm6dsl_gyro_lp_t gyrolpmode
LSM6DSL gyroscope subsystem low mode configuration.
lsm6dsl_acc_fs_t accfullscale
LSM6DSL accelerometer subsystem full scale.
const I2CConfig * i2ccfg
I2C configuration associated to this LSM6DSL accelerometer subsystem.
lsm6dsl_end_t endianness
LSM6DSL endianness.
lsm6dsl_acc_odr_t accodr
LSM6DSL accelerometer subsystem output data rate.
float * accbias
LSM6DSL accelerometer subsystem initial bias.
lsm6dsl_bdu_t bdu
LSM6DSL block data update.
float * accsensitivity
LSM6DSL accelerometer subsystem initial sensitivity.
I2CDriver * i2cp
I2C driver associated to this LSM6DSL.
float * gyrobias
LSM6DSL gyroscope subsystem initial bias.
lsm6dsl_gyro_odr_t gyroodr
LSM6DSL gyroscope subsystem output data rate.
const SPIConfig * accspicfg
SPI configuration associated to this LSM6DSL accelerometer subsystem.
lsm6dsl_gyro_lpf_t gyrolpfilter
LSM6DSL gyroscope subsystem low pass filter configuration.
lsm6dsl_acc_lp_t acclpmode
LSM6DSL accelerometer subsystem low power mode.
lsm6dsl_gyro_fs_t gyrofullscale
LSM6DSL gyroscope subsystem full scale.
LSM6DSL 6-axis accelerometer/gyroscope class.
BaseGyroscope gyro_if
Base gyroscope interface.
BaseAccelerometer acc_if
Base accelerometer interface.
const struct LSM6DSLVMT * vmt
Virtual Methods Table.
LSM6DSL virtual methods table.