ChibiOS 21.11.4

Detailed Description

Collaboration diagram for LSM6DS0:

LSM6DS0 data structures and types.

enum  lsm6ds0_sad_t { LSM6DS0_SAD_GND = 0x6A , LSM6DS0_SAD_VCC = 0x6B }
 Accelerometer and Gyroscope Slave Address. More...
enum  lsm6ds0_acc_fs_t { LSM6DS0_ACC_FS_2G = 0x00 , LSM6DS0_ACC_FS_4G = 0x10 , LSM6DS0_ACC_FS_8G = 0x18 , LSM6DS0_ACC_FS_16G = 0x08 }
 LSM6DS0 accelerometer subsystem full scale. More...
enum  lsm6ds0_acc_odr_t {
  LSM6DS0_ACC_ODR_PD = 0x00 , LSM6DS0_ACC_ODR_10Hz = 0x20 , LSM6DS0_ACC_ODR_50Hz = 0x40 , LSM6DS0_ACC_ODR_119Hz = 0x60 ,
  LSM6DS0_ACC_ODR_238Hz = 0x80 , LSM6DS0_ACC_ODR_476Hz = 0xA0 , LSM6DS0_ACC_ODR_952Hz = 0xC0
}
 LSM6DS0 accelerometer subsystem output data rate. More...
enum  lsm6ds0_acc_dec_t { LSM6DS0_ACC_DEC_DISABLED = 0x00 , LSM6DS0_ACC_DEC_X2 = 0x40 , LSM6DS0_ACC_DEC_X4 = 0x80 , LSM6DS0_ACC_DEC_X8 = 0xC0 }
 LSM6DS0 accelerometer subsystem decimation mode. More...
enum  lsm6ds0_gyro_fs_t { LSM6DS0_GYRO_FS_245DPS = 0x00 , LSM6DS0_GYRO_FS_500DPS = 0x08 , LSM6DS0_GYRO_FS_2000DPS = 0x18 }
 LSM6DS0 gyroscope subsystem full scale. More...
enum  lsm6ds0_gyro_odr_t {
  LSM6DS0_GYRO_ODR_PD = 0x00 , LSM6DS0_GYRO_ODR_95HZ_FC_25 = 0x10 , LSM6DS0_GYRO_ODR_14_9HZ_FC_5 = 0X20 , LSM6DS0_GYRO_ODR_59_5HZ_FC_16 = 0X40 ,
  LSM6DS0_GYRO_ODR_119HZ_FC_14 = 0X60 , LSM6DS0_GYRO_ODR_119HZ_FC_31 = 0X61 , LSM6DS0_GYRO_ODR_238HZ_FC_14 = 0X80 , LSM6DS0_GYRO_ODR_238HZ_FC_29 = 0X81 ,
  LSM6DS0_GYRO_ODR_238HZ_FC_63 = 0X82 , LSM6DS0_GYRO_ODR_238HZ_FC_78 = 0X83 , LSM6DS0_GYRO_ODR_476HZ_FC_21 = 0XA0 , LSM6DS0_GYRO_ODR_476HZ_FC_28 = 0XA1 ,
  LSM6DS0_GYRO_ODR_476HZ_FC_57 = 0XA2 , LSM6DS0_GYRO_ODR_476HZ_FC_100 = 0XA3 , LSM6DS0_GYRO_ODR_952HZ_FC_33 = 0XC0 , LSM6DS0_GYRO_ODR_952HZ_FC_40 = 0XC1 ,
  LSM6DS0_GYRO_ODR_952HZ_FC_58 = 0XC2 , LSM6DS0_GYRO_ODR_952HZ_FC_100 = 0XC3
}
 LSM6DS0 gyroscope subsystem output data rate. More...
enum  lsm6ds0_gyro_lp_t { LSM6DS0_GYRO_LP_DISABLED = 0x00 , LSM6DS0_GYRO_LP_ENABLED = 0x80 }
 LSM6DS0 gyroscope subsystem low mode configuration. More...
enum  lsm6ds0_gyro_out_sel_t { LSM6DS0_GYRO_OUT_SEL_0 = 0x00 , LSM6DS0_GYRO_OUT_SEL_1 = 0x01 , LSM6DS0_GYRO_OUT_SEL_2 = 0x02 }
 LSM6DS0 gyroscope subsystem output selection. More...
enum  lsm6ds0_gyro_hp_t { LSM6DS0_GYRO_HP_DISABLED = 0x00 , LSM6DS0_GYRO_HP_ENABLED = 0x40 }
 LSM6DS0 gyroscope subsystem high pass filter. More...
enum  lsm6ds0_gyro_hpcf_t {
  LSM6DS0_GYRO_HPCF_0 = 0x00 , LSM6DS0_GYRO_HPCF_1 = 0x01 , LSM6DS0_GYRO_HPCF_2 = 0x02 , LSM6DS0_GYRO_HPCF_3 = 0x03 ,
  LSM6DS0_GYRO_HPCF_4 = 0x04 , LSM6DS0_GYRO_HPCF_5 = 0x05 , LSM6DS0_GYRO_HPCF_6 = 0x06 , LSM6DS0_GYRO_HPCF_7 = 0x07 ,
  LSM6DS0_GYRO_HPCF_8 = 0x08 , LSM6DS0_GYRO_HPCF_9 = 0x09
}
 LSM6DS0 gyroscope subsystem high pass filter configuration. More...
enum  lsm6ds0_bdu_t { LSM6DS0_BDU_CONTINUOUS = 0x00 , LSM6DS0_BDU_BLOCKED = 0x40 }
 LSM6DS0 block data update. More...
enum  lsm6ds0_end_t { LSM6DS0_END_LITTLE = 0x00 , LSM6DS0_END_BIG = 0x20 }
 LSM6DS0 endianness. More...
enum  lsm6ds0_state_t { LSM6DS0_UNINIT = 0 , LSM6DS0_STOP = 1 , LSM6DS0_READY = 2 }
 Driver state machine possible states. More...
typedef struct LSM6DS0Driver LSM6DS0Driver
 Structure representing a LSM6DS0 driver.
#define _lsm6ds0_methods_alone
 LSM6DS0 specific methods.
#define _lsm6ds0_methods
 LSM6DS0 specific methods with inherited ones.
#define _lsm6ds0_data
 LSM6DS0Driver specific data.

Version identification

#define EX_LSM6DS0_VERSION   "1.1.3"
 LSM6DS0 driver version string.
#define EX_LSM6DS0_MAJOR   1
 LSM6DS0 driver version major number.
#define EX_LSM6DS0_MINOR   1
 LSM6DS0 driver version minor number.
#define EX_LSM6DS0_PATCH   3
 LSM6DS0 driver version patch number.
#define LSM6DS0_ACC_NUMBER_OF_AXES   3U
 LSM6DS0 accelerometer subsystem characteristics.
#define LSM6DS0_ACC_2G   2.0f
#define LSM6DS0_ACC_4G   4.0f
#define LSM6DS0_ACC_8G   8.0f
#define LSM6DS0_ACC_16G   16.0f
#define LSM6DS0_ACC_SENS_2G   0.061f
#define LSM6DS0_ACC_SENS_4G   0.122f
#define LSM6DS0_ACC_SENS_8G   0.244f
#define LSM6DS0_ACC_SENS_16G   0.732f
#define LSM6DS0_ACC_BIAS   0.0f
#define LSM6DS0_GYRO_NUMBER_OF_AXES   3U
 L3GD20 gyroscope system characteristics.
#define LSM6DS0_GYRO_245DPS   245.0f
#define LSM6DS0_GYRO_500DPS   500.0f
#define LSM6DS0_GYRO_2000DPS   2000.0f
#define LSM6DS0_GYRO_SENS_245DPS   0.00875f
#define LSM6DS0_GYRO_SENS_500DPS   0.01750f
#define LSM6DS0_GYRO_SENS_2000DPS   0.07000f
#define LSM6DS0_GYRO_BIAS   0.0f

LSM6DS0 communication interfaces related bit masks

#define LSM6DS0_DI_MASK   0xFF
#define LSM6DS0_DI(n)
#define LSM6DS0_AD_MASK   0x7F
#define LSM6DS0_AD(n)
#define LSM6DS0_MS   (1 << 7)

LSM6DS0 register addresses

#define LSM6DS0_AD_ACT_THS   0x04
#define LSM6DS0_AD_ACT_DUR   0x05
#define LSM6DS0_AD_INT_GEN_CFG_XL   0x06
#define LSM6DS0_AD_INT_GEN_THS_X_XL   0x07
#define LSM6DS0_AD_INT_GEN_THS_Y_XL   0x08
#define LSM6DS0_AD_INT_GEN_THS_Z_XL   0x09
#define LSM6DS0_AD_INT_GEN_DUR_XL   0x0A
#define LSM6DS0_AD_REFERENCE_G   0x0B
#define LSM6DS0_AD_INT_CTRL   0x0C
#define LSM6DS0_AD_WHO_AM_I   0x0F
#define LSM6DS0_AD_CTRL_REG1_G   0x10
#define LSM6DS0_AD_CTRL_REG2_G   0x11
#define LSM6DS0_AD_CTRL_REG3_G   0x12
#define LSM6DS0_AD_ORIENT_CFG_G   0x13
#define LSM6DS0_AD_INT_GEN_SRC_G   0x14
#define LSM6DS0_AD_OUT_TEMP_L   0x15
#define LSM6DS0_AD_OUT_TEMP_H   0x16
#define LSM6DS0_AD_STATUS_REG1   0x17
#define LSM6DS0_AD_OUT_X_L_G   0x18
#define LSM6DS0_AD_OUT_X_H_G   0x19
#define LSM6DS0_AD_OUT_Y_L_G   0x1A
#define LSM6DS0_AD_OUT_Y_H_G   0x1B
#define LSM6DS0_AD_OUT_Z_L_G   0x1C
#define LSM6DS0_AD_OUT_Z_H_G   0x1D
#define LSM6DS0_AD_CTRL_REG4   0x1E
#define LSM6DS0_AD_CTRL_REG5_XL   0x1F
#define LSM6DS0_AD_CTRL_REG6_XL   0x20
#define LSM6DS0_AD_CTRL_REG7_XL   0x21
#define LSM6DS0_AD_CTRL_REG8   0x22
#define LSM6DS0_AD_CTRL_REG9   0x23
#define LSM6DS0_AD_CTRL_REG10   0x24
#define LSM6DS0_AD_INT_GEN_SRC_XL   0x26
#define LSM6DS0_AD_STATUS_REG2   0x27
#define LSM6DS0_AD_OUT_X_L_XL   0x28
#define LSM6DS0_AD_OUT_X_H_XL   0x29
#define LSM6DS0_AD_OUT_Y_L_XL   0x2A
#define LSM6DS0_AD_OUT_Y_H_XL   0x2B
#define LSM6DS0_AD_OUT_Z_L_XL   0x2C
#define LSM6DS0_AD_OUT_Z_H_XL   0x2D
#define LSM6DS0_AD_FIFO_CTRL   0x2E
#define LSM6DS0_AD_FIFO_SRC   0x2F
#define LSM6DS0_AD_INT_GEN_CFG_G   0x30
#define LSM6DS0_AD_INT_GEN_THS_XH_G   0x31
#define LSM6DS0_AD_INT_GEN_THS_XL_G   0x32
#define LSM6DS0_AD_INT_GEN_THS_YH_G   0x33
#define LSM6DS0_AD_INT_GEN_THS_YL_G   0x34
#define LSM6DS0_AD_INT_GEN_THS_ZH_G   0x35
#define LSM6DS0_AD_INT_GEN_THS_ZL_G   0x36
#define LSM6DS0_AD_INT_GEN_DUR_G   0x37

LSM6DS0_AD_CTRL_REG1_G register bits definitions

#define LSM6DS0_CTRL_REG1_G   0xFA
#define LSM6DS0_CTRL_REG1_G_BW_G0   (1 << 0)
#define LSM6DS0_CTRL_REG1_G_BW_G1   (1 << 1)
#define LSM6DS0_CTRL_REG1_G_FS_MASK   0x1F
#define LSM6DS0_CTRL_REG1_G_FS_G0   (1 << 3)
#define LSM6DS0_CTRL_REG1_G_FS_G1   (1 << 4)
#define LSM6DS0_CTRL_REG1_G_ODR_G0   (1 << 5)
#define LSM6DS0_CTRL_REG1_G_ODR_G1   (1 << 6)
#define LSM6DS0_CTRL_REG1_G_ODR_G2   (1 << 7)

LSM6DS0_AD_CTRL_REG2_G register bits definitions

#define LSM6DS0_CTRL_REG2_G   0x0F
#define LSM6DS0_CTRL_REG2_G_OUT_SEL0   (1 << 0)
#define LSM6DS0_CTRL_REG2_G_OUT_SEL1   (1 << 1)
#define LSM6DS0_CTRL_REG2_G_INT_SEL0   (1 << 2)
#define LSM6DS0_CTRL_REG2_G_INT_SEL1   (1 << 3)

LSM6DS0_AD_CTRL_REG3_G register bits definitions

#define LSM6DS0_CTRL_REG3_G   0x64
#define LSM6DS0_CTRL_REG3_G_HP_CF0_G   (1 << 0)
#define LSM6DS0_CTRL_REG3_G_HP_CF1_G   (1 << 1)
#define LSM6DS0_CTRL_REG3_G_HP_CF2_G   (1 << 2)
#define LSM6DS0_CTRL_REG3_G_HP_CF3_G   (1 << 3)
#define LSM6DS0_CTRL_REG3_G_HP_EN   (1 << 6)
#define LSM6DS0_CTRL_REG3_G_LP_MODE   (1 << 7)

LSM6DS0_AD_CTRL_REG4 register bits definitions

#define LSM6DS0_CTRL_REG4   0x3A
#define LSM6DS0_CTRL_REG4_4D_XL1   (1 << 0)
#define LSM6DS0_CTRL_REG4_LIR_XL1   (1 << 1)
#define LSM6DS0_CTRL_REG4_XEN_G   (1 << 3)
#define LSM6DS0_CTRL_REG4_YEN_G   (1 << 4)
#define LSM6DS0_CTRL_REG4_ZEN_G   (1 << 5)

LSM6DS0_AD_CTRL_REG5_XL register bits definitions

#define LSM6DS0_CTRL_REG5_XL   0xF8
#define LSM6DS0_CTRL_REG5_XL_XEN_XL   (1 << 3)
#define LSM6DS0_CTRL_REG5_XL_YEN_XL   (1 << 4)
#define LSM6DS0_CTRL_REG5_XL_ZEN_XL   (1 << 5)
#define LSM6DS0_CTRL_REG5_XL_DEC0   (1 << 6)
#define LSM6DS0_CTRL_REG5_XL_DEC1   (1 << 7)

LSM6DS0_AD_CTRL_REG6_XL register bits definitions

#define LSM6DS0_CTRL_REG6_XL   0xFF
#define LSM6DS0_CTRL_REG6_XL_BW_XL0   (1 << 0)
#define LSM6DS0_CTRL_REG6_XL_BW_XL1   (1 << 1)
#define LSM6DS0_CTRL_REG6_XL_BW_SCAL_ODR   (1 << 2)
#define LSM6DS0_CTRL_REG6_XL_FS_MASK   0x1F
#define LSM6DS0_CTRL_REG6_XL_FS0_XL   (1 << 3)
#define LSM6DS0_CTRL_REG6_XL_FS1_XL   (1 << 4)
#define LSM6DS0_CTRL_REG6_XL_ODR_XL0   (1 << 5)
#define LSM6DS0_CTRL_REG6_XL_ODR_XL1   (1 << 6)
#define LSM6DS0_CTRL_REG6_XL_ODR_XL2   (1 << 7)

LSM6DS0_AD_CTRL_REG7_XL register bits definitions

#define LSM6DS0_CTRL_REG7_XL   0xE5
#define LSM6DS0_CTRL_REG7_XL_HPIS1   (1 << 0)
#define LSM6DS0_CTRL_REG7_XL_FDS   (1 << 2)
#define LSM6DS0_CTRL_REG7_XL_DCF0   (1 << 5)
#define LSM6DS0_CTRL_REG7_XL_DCF1   (1 << 6)
#define LSM6DS0_CTRL_REG7_XL_HR   (1 << 7)

LSM6DS0_AD_CTRL_REG8 register bits definitions

#define LSM6DS0_CTRL_REG8   0xFF
#define LSM6DS0_CTRL_REG8_SW_RESET   (1 << 0)
#define LSM6DS0_CTRL_REG8_BLE   (1 << 1)
#define LSM6DS0_CTRL_REG8_IF_ADD_INC   (1 << 2)
#define LSM6DS0_CTRL_REG8_SIM   (1 << 3)
#define LSM6DS0_CTRL_REG8_PP_OD   (1 << 4)
#define LSM6DS0_CTRL_REG8_H_LACTIVE   (1 << 5)
#define LSM6DS0_CTRL_REG8_BDU   (1 << 6)
#define LSM6DS0_CTRL_REG8_BOOT   (1 << 7)

LSM6DS0_AD_CTRL_REG9 register bits definitions

#define LSM6DS0_CTRL_REG9   0x5F
#define LSM6DS0_CTRL_REG9_STOP_ON_FTH   (1 << 0)
#define LSM6DS0_CTRL_REG9_FIFO_EN   (1 << 1)
#define LSM6DS0_CTRL_REG9_I2C_DISABLE   (1 << 2)
#define LSM6DS0_CTRL_REG9_DRDY_MASK_BIT   (1 << 3)
#define LSM6DS0_CTRL_REG9_FIFO_TEMP_EN   (1 << 4)
#define LSM6DS0_CTRL_REG9_SLEEP_G   (1 << 6)

LSM6DS0_AD_CTRL_REG10 register bits definitions

#define LSM6DS0_CTRL_REG10   0x05
#define LSM6DS0_CTRL_REG10_ST_XL   (1 << 0)
#define LSM6DS0_CTRL_REG10_ST_G   (1 << 2)

Configuration options

#define LSM6DS0_USE_SPI   FALSE
 LSM6DS0 SPI interface switch.
#define LSM6DS0_SHARED_SPI   FALSE
 LSM6DS0 shared SPI switch.
#define LSM6DS0_USE_I2C   TRUE
 LSM6DS0 I2C interface switch.
#define LSM6DS0_SHARED_I2C   FALSE
 LSM6DS0 shared I2C switch.
#define LSM6DS0_USE_ADVANCED   FALSE
 LSM6DS0 advanced configurations switch.
#define LSM6DS0_GYRO_BIAS_ACQ_TIMES   50
 Number of acquisitions for gyroscope bias removal.
#define LSM6DS0_GYRO_BIAS_SETTLING_US   5000
 Settling time for gyroscope bias removal.

Data Structures

struct  LSM6DS0Config
 LSM6DS0 configuration structure. More...
struct  LSM6DS0VMT
 LSM6DS0 virtual methods table. More...
struct  LSM6DS0Driver
 LSM6DS0 6-axis accelerometer/gyroscope class. More...

Macros

#define lsm6ds0I2CWriteRegister(i2cp, sad, txbuf, n)
 Writes a value into a register using I2C.
#define lsm6ds0AccelerometerGetAxesNumber(devp)
 Return the number of axes of the BaseAccelerometer.
#define lsm6ds0AccelerometerReadRaw(devp, axes)
 Retrieves raw data from the BaseAccelerometer.
#define lsm6ds0AccelerometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseAccelerometer.
#define lsm6ds0AccelerometerSetBias(devp, bp)
 Set bias values for the BaseAccelerometer.
#define lsm6ds0AccelerometerResetBias(devp)
 Reset bias values for the BaseAccelerometer.
#define lsm6ds0AccelerometerSetSensitivity(devp, sp)
 Set sensitivity values for the BaseAccelerometer.
#define lsm6ds0AccelerometerResetSensitivity(devp)
 Reset sensitivity values for the BaseAccelerometer.
#define lsm6ds0AccelerometerSetFullScale(devp, fs)
 Changes the LSM6DS0Driver accelerometer fullscale value.
#define lsm6ds0GyroscopeGetAxesNumber(devp)
 Return the number of axes of the BaseGyroscope.
#define lsm6ds0GyroscopeReadRaw(devp, axes)
 Retrieves raw data from the BaseGyroscope.
#define lsm6ds0GyroscopeReadCooked(devp, axes)
 Retrieves cooked data from the BaseGyroscope.
#define lsm6ds0GyroscopeSampleBias(devp)
 Samples bias values for the BaseGyroscope.
#define lsm6ds0GyroscopeSetBias(devp, bp)
 Set bias values for the BaseGyroscope.
#define lsm6ds0GyroscopeResetBias(devp)
 Reset bias values for the BaseGyroscope.
#define lsm6ds0GyroscopeSetSensitivity(devp, sp)
 Set sensitivity values for the BaseGyroscope.
#define lsm6ds0GyroscopeResetSensitivity(devp)
 Reset sensitivity values for the BaseGyroscope.
#define lsm6ds0GyroscopeSetFullScale(devp, fs)
 Changes the LSM6DS0Driver gyroscope fullscale value.

Functions

msg_t lsm6ds0I2CReadRegister (I2CDriver *i2cp, lsm6ds0_sad_t sad, uint8_t reg, uint8_t *rxbuf, size_t n)
 Reads registers value using I2C.
static size_t acc_get_axes_number (void *ip)
 Return the number of axes of the BaseAccelerometer.
static msg_t acc_read_raw (void *ip, int32_t axes[])
 Retrieves raw data from the BaseAccelerometer.
static msg_t acc_read_cooked (void *ip, float axes[])
 Retrieves cooked data from the BaseAccelerometer.
static msg_t acc_set_bias (void *ip, float *bp)
 Set bias values for the BaseAccelerometer.
static msg_t acc_reset_bias (void *ip)
 Reset bias values for the BaseAccelerometer.
static msg_t acc_set_sensivity (void *ip, float *sp)
 Set sensitivity values for the BaseAccelerometer.
static msg_t acc_reset_sensivity (void *ip)
 Reset sensitivity values for the BaseAccelerometer.
static msg_t acc_set_full_scale (LSM6DS0Driver *devp, lsm6ds0_acc_fs_t fs)
 Changes the LSM6DS0Driver accelerometer fullscale value.
static size_t gyro_get_axes_number (void *ip)
 Return the number of axes of the BaseGyroscope.
static msg_t gyro_read_raw (void *ip, int32_t axes[LSM6DS0_GYRO_NUMBER_OF_AXES])
 Retrieves raw data from the BaseGyroscope.
static msg_t gyro_read_cooked (void *ip, float axes[])
 Retrieves cooked data from the BaseGyroscope.
static msg_t gyro_sample_bias (void *ip)
 Samples bias values for the BaseGyroscope.
static msg_t gyro_set_bias (void *ip, float *bp)
 Set bias values for the BaseGyroscope.
static msg_t gyro_reset_bias (void *ip)
 Reset bias values for the BaseGyroscope.
static msg_t gyro_set_sensivity (void *ip, float *sp)
 Set sensitivity values for the BaseGyroscope.
static msg_t gyro_reset_sensivity (void *ip)
 Reset sensitivity values for the BaseGyroscope.
static msg_t gyro_set_full_scale (LSM6DS0Driver *devp, lsm6ds0_gyro_fs_t fs)
 Changes the LSM6DS0Driver gyroscope fullscale value.
void lsm6ds0ObjectInit (LSM6DS0Driver *devp)
 Initializes an instance.
void lsm6ds0Start (LSM6DS0Driver *devp, const LSM6DS0Config *config)
 Configures and activates LSM6DS0 Complex Driver peripheral.
void lsm6ds0Stop (LSM6DS0Driver *devp)
 Deactivates the LSM6DS0 Complex Driver peripheral.

Variables

static const struct LSM6DS0VMT vmt_device
static const struct BaseAccelerometerVMT vmt_accelerometer
static const struct BaseGyroscopeVMT vmt_gyroscope

Macro Definition Documentation

◆ lsm6ds0I2CWriteRegister

#define lsm6ds0I2CWriteRegister ( i2cp,
sad,
txbuf,
n )
Value:
i2cMasterTransmitTimeout(i2cp, sad, txbuf, n + 1, NULL, 0, \
msg_t i2cMasterTransmitTimeout(I2CDriver *i2cp, i2caddr_t addr, const uint8_t *txbuf, size_t txbytes, uint8_t *rxbuf, size_t rxbytes, sysinterval_t timeout)
Sends data via the I2C bus.
Definition hal_i2c.c:187
#define TIME_INFINITE
Infinite interval specification for all functions with a timeout specification.
Definition chtime.h:55

Writes a value into a register using I2C.

Precondition
The I2C interface must be initialized and the driver started.
Parameters
[in]i2cppointer to the I2C interface
[in]sadslave address without R bit
[in]txbufbuffer containing sub-address value in first position and values to write
[in]nsize of txbuf less one (not considering the first element)
Returns
the operation status.
Function Class:
Not an API, this function is for internal use only.

Definition at line 83 of file lsm6ds0.c.

Referenced by acc_set_full_scale(), gyro_set_full_scale(), lsm6ds0Start(), and lsm6ds0Stop().

◆ EX_LSM6DS0_VERSION

#define EX_LSM6DS0_VERSION   "1.1.3"

LSM6DS0 driver version string.

Definition at line 46 of file lsm6ds0.h.

◆ EX_LSM6DS0_MAJOR

#define EX_LSM6DS0_MAJOR   1

LSM6DS0 driver version major number.

Definition at line 51 of file lsm6ds0.h.

◆ EX_LSM6DS0_MINOR

#define EX_LSM6DS0_MINOR   1

LSM6DS0 driver version minor number.

Definition at line 56 of file lsm6ds0.h.

◆ EX_LSM6DS0_PATCH

#define EX_LSM6DS0_PATCH   3

LSM6DS0 driver version patch number.

Definition at line 61 of file lsm6ds0.h.

◆ LSM6DS0_ACC_NUMBER_OF_AXES

#define LSM6DS0_ACC_NUMBER_OF_AXES   3U

LSM6DS0 accelerometer subsystem characteristics.

Note
Sensitivity is expressed as milli-G/LSB whereas 1 milli-G = 0.00980665 m/s^2.
Bias is expressed as milli-G.

Definition at line 72 of file lsm6ds0.h.

Referenced by acc_get_axes_number(), acc_read_cooked(), acc_read_raw(), acc_reset_bias(), acc_reset_sensivity(), acc_set_bias(), acc_set_full_scale(), acc_set_sensivity(), lsm6ds0ObjectInit(), and lsm6ds0Start().

◆ LSM6DS0_ACC_2G

#define LSM6DS0_ACC_2G   2.0f

Definition at line 74 of file lsm6ds0.h.

Referenced by acc_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_ACC_4G

#define LSM6DS0_ACC_4G   4.0f

Definition at line 75 of file lsm6ds0.h.

Referenced by acc_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_ACC_8G

#define LSM6DS0_ACC_8G   8.0f

Definition at line 76 of file lsm6ds0.h.

Referenced by acc_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_ACC_16G

#define LSM6DS0_ACC_16G   16.0f

Definition at line 77 of file lsm6ds0.h.

Referenced by acc_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_ACC_SENS_2G

#define LSM6DS0_ACC_SENS_2G   0.061f

Definition at line 79 of file lsm6ds0.h.

Referenced by acc_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_ACC_SENS_4G

#define LSM6DS0_ACC_SENS_4G   0.122f

Definition at line 80 of file lsm6ds0.h.

Referenced by acc_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_ACC_SENS_8G

#define LSM6DS0_ACC_SENS_8G   0.244f

Definition at line 81 of file lsm6ds0.h.

Referenced by acc_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_ACC_SENS_16G

#define LSM6DS0_ACC_SENS_16G   0.732f

Definition at line 82 of file lsm6ds0.h.

Referenced by acc_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_ACC_BIAS

#define LSM6DS0_ACC_BIAS   0.0f

Definition at line 84 of file lsm6ds0.h.

Referenced by acc_reset_bias(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_NUMBER_OF_AXES

#define LSM6DS0_GYRO_NUMBER_OF_AXES   3U

L3GD20 gyroscope system characteristics.

Note
Sensitivity is expressed as DPS/LSB whereas DPS stand for Degree per second [�/s].
Bias is expressed as DPS.

Definition at line 95 of file lsm6ds0.h.

Referenced by gyro_get_axes_number(), gyro_read_cooked(), gyro_read_raw(), gyro_reset_bias(), gyro_reset_sensivity(), gyro_sample_bias(), gyro_set_bias(), gyro_set_full_scale(), gyro_set_sensivity(), lsm6ds0ObjectInit(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_245DPS

#define LSM6DS0_GYRO_245DPS   245.0f

Definition at line 97 of file lsm6ds0.h.

Referenced by gyro_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_500DPS

#define LSM6DS0_GYRO_500DPS   500.0f

Definition at line 98 of file lsm6ds0.h.

Referenced by gyro_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_2000DPS

#define LSM6DS0_GYRO_2000DPS   2000.0f

Definition at line 99 of file lsm6ds0.h.

Referenced by gyro_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_SENS_245DPS

#define LSM6DS0_GYRO_SENS_245DPS   0.00875f

Definition at line 101 of file lsm6ds0.h.

Referenced by gyro_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_SENS_500DPS

#define LSM6DS0_GYRO_SENS_500DPS   0.01750f

Definition at line 102 of file lsm6ds0.h.

Referenced by gyro_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_SENS_2000DPS

#define LSM6DS0_GYRO_SENS_2000DPS   0.07000f

Definition at line 103 of file lsm6ds0.h.

Referenced by gyro_reset_sensivity(), and lsm6ds0Start().

◆ LSM6DS0_GYRO_BIAS

#define LSM6DS0_GYRO_BIAS   0.0f

Definition at line 105 of file lsm6ds0.h.

Referenced by gyro_reset_bias(), and lsm6ds0Start().

◆ LSM6DS0_DI_MASK

#define LSM6DS0_DI_MASK   0xFF

Definition at line 112 of file lsm6ds0.h.

◆ LSM6DS0_DI

#define LSM6DS0_DI ( n)
Value:
(1 << n)

Definition at line 113 of file lsm6ds0.h.

◆ LSM6DS0_AD_MASK

#define LSM6DS0_AD_MASK   0x7F

Definition at line 114 of file lsm6ds0.h.

◆ LSM6DS0_AD

#define LSM6DS0_AD ( n)
Value:
(1 << n)

Definition at line 115 of file lsm6ds0.h.

◆ LSM6DS0_MS

#define LSM6DS0_MS   (1 << 7)

Definition at line 116 of file lsm6ds0.h.

◆ LSM6DS0_AD_ACT_THS

#define LSM6DS0_AD_ACT_THS   0x04

Definition at line 123 of file lsm6ds0.h.

◆ LSM6DS0_AD_ACT_DUR

#define LSM6DS0_AD_ACT_DUR   0x05

Definition at line 124 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_CFG_XL

#define LSM6DS0_AD_INT_GEN_CFG_XL   0x06

Definition at line 125 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_X_XL

#define LSM6DS0_AD_INT_GEN_THS_X_XL   0x07

Definition at line 126 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_Y_XL

#define LSM6DS0_AD_INT_GEN_THS_Y_XL   0x08

Definition at line 127 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_Z_XL

#define LSM6DS0_AD_INT_GEN_THS_Z_XL   0x09

Definition at line 128 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_DUR_XL

#define LSM6DS0_AD_INT_GEN_DUR_XL   0x0A

Definition at line 129 of file lsm6ds0.h.

◆ LSM6DS0_AD_REFERENCE_G

#define LSM6DS0_AD_REFERENCE_G   0x0B

Definition at line 130 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_CTRL

#define LSM6DS0_AD_INT_CTRL   0x0C

Definition at line 131 of file lsm6ds0.h.

◆ LSM6DS0_AD_WHO_AM_I

#define LSM6DS0_AD_WHO_AM_I   0x0F

Definition at line 132 of file lsm6ds0.h.

◆ LSM6DS0_AD_CTRL_REG1_G

#define LSM6DS0_AD_CTRL_REG1_G   0x10

Definition at line 133 of file lsm6ds0.h.

Referenced by gyro_set_full_scale(), and lsm6ds0Start().

◆ LSM6DS0_AD_CTRL_REG2_G

#define LSM6DS0_AD_CTRL_REG2_G   0x11

Definition at line 134 of file lsm6ds0.h.

◆ LSM6DS0_AD_CTRL_REG3_G

#define LSM6DS0_AD_CTRL_REG3_G   0x12

Definition at line 135 of file lsm6ds0.h.

◆ LSM6DS0_AD_ORIENT_CFG_G

#define LSM6DS0_AD_ORIENT_CFG_G   0x13

Definition at line 136 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_SRC_G

#define LSM6DS0_AD_INT_GEN_SRC_G   0x14

Definition at line 137 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_TEMP_L

#define LSM6DS0_AD_OUT_TEMP_L   0x15

Definition at line 138 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_TEMP_H

#define LSM6DS0_AD_OUT_TEMP_H   0x16

Definition at line 139 of file lsm6ds0.h.

◆ LSM6DS0_AD_STATUS_REG1

#define LSM6DS0_AD_STATUS_REG1   0x17

Definition at line 140 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_X_L_G

#define LSM6DS0_AD_OUT_X_L_G   0x18

Definition at line 141 of file lsm6ds0.h.

Referenced by gyro_read_raw().

◆ LSM6DS0_AD_OUT_X_H_G

#define LSM6DS0_AD_OUT_X_H_G   0x19

Definition at line 142 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Y_L_G

#define LSM6DS0_AD_OUT_Y_L_G   0x1A

Definition at line 143 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Y_H_G

#define LSM6DS0_AD_OUT_Y_H_G   0x1B

Definition at line 144 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Z_L_G

#define LSM6DS0_AD_OUT_Z_L_G   0x1C

Definition at line 145 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Z_H_G

#define LSM6DS0_AD_OUT_Z_H_G   0x1D

Definition at line 146 of file lsm6ds0.h.

◆ LSM6DS0_AD_CTRL_REG4

#define LSM6DS0_AD_CTRL_REG4   0x1E

Definition at line 147 of file lsm6ds0.h.

◆ LSM6DS0_AD_CTRL_REG5_XL

#define LSM6DS0_AD_CTRL_REG5_XL   0x1F

Definition at line 148 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_AD_CTRL_REG6_XL

#define LSM6DS0_AD_CTRL_REG6_XL   0x20

Definition at line 149 of file lsm6ds0.h.

Referenced by acc_set_full_scale(), and lsm6ds0Stop().

◆ LSM6DS0_AD_CTRL_REG7_XL

#define LSM6DS0_AD_CTRL_REG7_XL   0x21

Definition at line 150 of file lsm6ds0.h.

◆ LSM6DS0_AD_CTRL_REG8

#define LSM6DS0_AD_CTRL_REG8   0x22

Definition at line 151 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_AD_CTRL_REG9

#define LSM6DS0_AD_CTRL_REG9   0x23

Definition at line 152 of file lsm6ds0.h.

Referenced by lsm6ds0Start(), and lsm6ds0Stop().

◆ LSM6DS0_AD_CTRL_REG10

#define LSM6DS0_AD_CTRL_REG10   0x24

Definition at line 153 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_SRC_XL

#define LSM6DS0_AD_INT_GEN_SRC_XL   0x26

Definition at line 154 of file lsm6ds0.h.

◆ LSM6DS0_AD_STATUS_REG2

#define LSM6DS0_AD_STATUS_REG2   0x27

Definition at line 155 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_X_L_XL

#define LSM6DS0_AD_OUT_X_L_XL   0x28

Definition at line 156 of file lsm6ds0.h.

Referenced by acc_read_raw().

◆ LSM6DS0_AD_OUT_X_H_XL

#define LSM6DS0_AD_OUT_X_H_XL   0x29

Definition at line 157 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Y_L_XL

#define LSM6DS0_AD_OUT_Y_L_XL   0x2A

Definition at line 158 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Y_H_XL

#define LSM6DS0_AD_OUT_Y_H_XL   0x2B

Definition at line 159 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Z_L_XL

#define LSM6DS0_AD_OUT_Z_L_XL   0x2C

Definition at line 160 of file lsm6ds0.h.

◆ LSM6DS0_AD_OUT_Z_H_XL

#define LSM6DS0_AD_OUT_Z_H_XL   0x2D

Definition at line 161 of file lsm6ds0.h.

◆ LSM6DS0_AD_FIFO_CTRL

#define LSM6DS0_AD_FIFO_CTRL   0x2E

Definition at line 162 of file lsm6ds0.h.

◆ LSM6DS0_AD_FIFO_SRC

#define LSM6DS0_AD_FIFO_SRC   0x2F

Definition at line 163 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_CFG_G

#define LSM6DS0_AD_INT_GEN_CFG_G   0x30

Definition at line 164 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_XH_G

#define LSM6DS0_AD_INT_GEN_THS_XH_G   0x31

Definition at line 165 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_XL_G

#define LSM6DS0_AD_INT_GEN_THS_XL_G   0x32

Definition at line 166 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_YH_G

#define LSM6DS0_AD_INT_GEN_THS_YH_G   0x33

Definition at line 167 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_YL_G

#define LSM6DS0_AD_INT_GEN_THS_YL_G   0x34

Definition at line 168 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_ZH_G

#define LSM6DS0_AD_INT_GEN_THS_ZH_G   0x35

Definition at line 169 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_THS_ZL_G

#define LSM6DS0_AD_INT_GEN_THS_ZL_G   0x36

Definition at line 170 of file lsm6ds0.h.

◆ LSM6DS0_AD_INT_GEN_DUR_G

#define LSM6DS0_AD_INT_GEN_DUR_G   0x37

Definition at line 171 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G

#define LSM6DS0_CTRL_REG1_G   0xFA

Definition at line 178 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_BW_G0

#define LSM6DS0_CTRL_REG1_G_BW_G0   (1 << 0)

Definition at line 179 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_BW_G1

#define LSM6DS0_CTRL_REG1_G_BW_G1   (1 << 1)

Definition at line 180 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_FS_MASK

#define LSM6DS0_CTRL_REG1_G_FS_MASK   0x1F

Definition at line 181 of file lsm6ds0.h.

Referenced by gyro_set_full_scale().

◆ LSM6DS0_CTRL_REG1_G_FS_G0

#define LSM6DS0_CTRL_REG1_G_FS_G0   (1 << 3)

Definition at line 182 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_FS_G1

#define LSM6DS0_CTRL_REG1_G_FS_G1   (1 << 4)

Definition at line 183 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_ODR_G0

#define LSM6DS0_CTRL_REG1_G_ODR_G0   (1 << 5)

Definition at line 184 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_ODR_G1

#define LSM6DS0_CTRL_REG1_G_ODR_G1   (1 << 6)

Definition at line 185 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG1_G_ODR_G2

#define LSM6DS0_CTRL_REG1_G_ODR_G2   (1 << 7)

Definition at line 186 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG2_G

#define LSM6DS0_CTRL_REG2_G   0x0F

Definition at line 193 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG2_G_OUT_SEL0

#define LSM6DS0_CTRL_REG2_G_OUT_SEL0   (1 << 0)

Definition at line 194 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG2_G_OUT_SEL1

#define LSM6DS0_CTRL_REG2_G_OUT_SEL1   (1 << 1)

Definition at line 195 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG2_G_INT_SEL0

#define LSM6DS0_CTRL_REG2_G_INT_SEL0   (1 << 2)

Definition at line 196 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG2_G_INT_SEL1

#define LSM6DS0_CTRL_REG2_G_INT_SEL1   (1 << 3)

Definition at line 197 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G

#define LSM6DS0_CTRL_REG3_G   0x64

Definition at line 204 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G_HP_CF0_G

#define LSM6DS0_CTRL_REG3_G_HP_CF0_G   (1 << 0)

Definition at line 205 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G_HP_CF1_G

#define LSM6DS0_CTRL_REG3_G_HP_CF1_G   (1 << 1)

Definition at line 206 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G_HP_CF2_G

#define LSM6DS0_CTRL_REG3_G_HP_CF2_G   (1 << 2)

Definition at line 207 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G_HP_CF3_G

#define LSM6DS0_CTRL_REG3_G_HP_CF3_G   (1 << 3)

Definition at line 208 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G_HP_EN

#define LSM6DS0_CTRL_REG3_G_HP_EN   (1 << 6)

Definition at line 209 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG3_G_LP_MODE

#define LSM6DS0_CTRL_REG3_G_LP_MODE   (1 << 7)

Definition at line 210 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG4

#define LSM6DS0_CTRL_REG4   0x3A

Definition at line 217 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG4_4D_XL1

#define LSM6DS0_CTRL_REG4_4D_XL1   (1 << 0)

Definition at line 218 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG4_LIR_XL1

#define LSM6DS0_CTRL_REG4_LIR_XL1   (1 << 1)

Definition at line 219 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG4_XEN_G

#define LSM6DS0_CTRL_REG4_XEN_G   (1 << 3)

Definition at line 220 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG4_YEN_G

#define LSM6DS0_CTRL_REG4_YEN_G   (1 << 4)

Definition at line 221 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG4_ZEN_G

#define LSM6DS0_CTRL_REG4_ZEN_G   (1 << 5)

Definition at line 222 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG5_XL

#define LSM6DS0_CTRL_REG5_XL   0xF8

Definition at line 229 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG5_XL_XEN_XL

#define LSM6DS0_CTRL_REG5_XL_XEN_XL   (1 << 3)

Definition at line 230 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG5_XL_YEN_XL

#define LSM6DS0_CTRL_REG5_XL_YEN_XL   (1 << 4)

Definition at line 231 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG5_XL_ZEN_XL

#define LSM6DS0_CTRL_REG5_XL_ZEN_XL   (1 << 5)

Definition at line 232 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG5_XL_DEC0

#define LSM6DS0_CTRL_REG5_XL_DEC0   (1 << 6)

Definition at line 233 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG5_XL_DEC1

#define LSM6DS0_CTRL_REG5_XL_DEC1   (1 << 7)

Definition at line 234 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL

#define LSM6DS0_CTRL_REG6_XL   0xFF

Definition at line 241 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_BW_XL0

#define LSM6DS0_CTRL_REG6_XL_BW_XL0   (1 << 0)

Definition at line 242 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_BW_XL1

#define LSM6DS0_CTRL_REG6_XL_BW_XL1   (1 << 1)

Definition at line 243 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_BW_SCAL_ODR

#define LSM6DS0_CTRL_REG6_XL_BW_SCAL_ODR   (1 << 2)

Definition at line 244 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_FS_MASK

#define LSM6DS0_CTRL_REG6_XL_FS_MASK   0x1F

Definition at line 245 of file lsm6ds0.h.

Referenced by acc_set_full_scale().

◆ LSM6DS0_CTRL_REG6_XL_FS0_XL

#define LSM6DS0_CTRL_REG6_XL_FS0_XL   (1 << 3)

Definition at line 246 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_FS1_XL

#define LSM6DS0_CTRL_REG6_XL_FS1_XL   (1 << 4)

Definition at line 247 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_ODR_XL0

#define LSM6DS0_CTRL_REG6_XL_ODR_XL0   (1 << 5)

Definition at line 248 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_ODR_XL1

#define LSM6DS0_CTRL_REG6_XL_ODR_XL1   (1 << 6)

Definition at line 249 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG6_XL_ODR_XL2

#define LSM6DS0_CTRL_REG6_XL_ODR_XL2   (1 << 7)

Definition at line 250 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG7_XL

#define LSM6DS0_CTRL_REG7_XL   0xE5

Definition at line 257 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG7_XL_HPIS1

#define LSM6DS0_CTRL_REG7_XL_HPIS1   (1 << 0)

Definition at line 258 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG7_XL_FDS

#define LSM6DS0_CTRL_REG7_XL_FDS   (1 << 2)

Definition at line 259 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG7_XL_DCF0

#define LSM6DS0_CTRL_REG7_XL_DCF0   (1 << 5)

Definition at line 260 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG7_XL_DCF1

#define LSM6DS0_CTRL_REG7_XL_DCF1   (1 << 6)

Definition at line 261 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG7_XL_HR

#define LSM6DS0_CTRL_REG7_XL_HR   (1 << 7)

Definition at line 262 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8

#define LSM6DS0_CTRL_REG8   0xFF

Definition at line 269 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_SW_RESET

#define LSM6DS0_CTRL_REG8_SW_RESET   (1 << 0)

Definition at line 270 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_BLE

#define LSM6DS0_CTRL_REG8_BLE   (1 << 1)

Definition at line 271 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_IF_ADD_INC

#define LSM6DS0_CTRL_REG8_IF_ADD_INC   (1 << 2)

Definition at line 272 of file lsm6ds0.h.

Referenced by lsm6ds0Start().

◆ LSM6DS0_CTRL_REG8_SIM

#define LSM6DS0_CTRL_REG8_SIM   (1 << 3)

Definition at line 273 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_PP_OD

#define LSM6DS0_CTRL_REG8_PP_OD   (1 << 4)

Definition at line 274 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_H_LACTIVE

#define LSM6DS0_CTRL_REG8_H_LACTIVE   (1 << 5)

Definition at line 275 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_BDU

#define LSM6DS0_CTRL_REG8_BDU   (1 << 6)

Definition at line 276 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG8_BOOT

#define LSM6DS0_CTRL_REG8_BOOT   (1 << 7)

Definition at line 277 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9

#define LSM6DS0_CTRL_REG9   0x5F

Definition at line 284 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9_STOP_ON_FTH

#define LSM6DS0_CTRL_REG9_STOP_ON_FTH   (1 << 0)

Definition at line 285 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9_FIFO_EN

#define LSM6DS0_CTRL_REG9_FIFO_EN   (1 << 1)

Definition at line 286 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9_I2C_DISABLE

#define LSM6DS0_CTRL_REG9_I2C_DISABLE   (1 << 2)

Definition at line 287 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9_DRDY_MASK_BIT

#define LSM6DS0_CTRL_REG9_DRDY_MASK_BIT   (1 << 3)

Definition at line 288 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9_FIFO_TEMP_EN

#define LSM6DS0_CTRL_REG9_FIFO_TEMP_EN   (1 << 4)

Definition at line 289 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG9_SLEEP_G

#define LSM6DS0_CTRL_REG9_SLEEP_G   (1 << 6)

Definition at line 290 of file lsm6ds0.h.

Referenced by lsm6ds0Stop().

◆ LSM6DS0_CTRL_REG10

#define LSM6DS0_CTRL_REG10   0x05

Definition at line 297 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG10_ST_XL

#define LSM6DS0_CTRL_REG10_ST_XL   (1 << 0)

Definition at line 298 of file lsm6ds0.h.

◆ LSM6DS0_CTRL_REG10_ST_G

#define LSM6DS0_CTRL_REG10_ST_G   (1 << 2)

Definition at line 299 of file lsm6ds0.h.

◆ LSM6DS0_USE_SPI

#define LSM6DS0_USE_SPI   FALSE

LSM6DS0 SPI interface switch.

If set to TRUE the support for SPI is included.

Note
The default is FALSE.

Definition at line 316 of file lsm6ds0.h.

◆ LSM6DS0_SHARED_SPI

#define LSM6DS0_SHARED_SPI   FALSE

LSM6DS0 shared SPI switch.

If set to TRUE the device acquires SPI bus ownership on each transaction.

Note
The default is FALSE. Requires SPI_USE_MUTUAL_EXCLUSION.

Definition at line 326 of file lsm6ds0.h.

◆ LSM6DS0_USE_I2C

#define LSM6DS0_USE_I2C   TRUE

LSM6DS0 I2C interface switch.

If set to TRUE the support for I2C is included.

Note
The default is TRUE.

Definition at line 335 of file lsm6ds0.h.

◆ LSM6DS0_SHARED_I2C

#define LSM6DS0_SHARED_I2C   FALSE

LSM6DS0 shared I2C switch.

If set to TRUE the device acquires I2C bus ownership on each transaction.

Note
The default is FALSE. Requires I2C_USE_MUTUAL_EXCLUSION.

Definition at line 345 of file lsm6ds0.h.

◆ LSM6DS0_USE_ADVANCED

#define LSM6DS0_USE_ADVANCED   FALSE

LSM6DS0 advanced configurations switch.

If set to TRUE more configurations are available.

Note
The default is FALSE.

Definition at line 354 of file lsm6ds0.h.

◆ LSM6DS0_GYRO_BIAS_ACQ_TIMES

#define LSM6DS0_GYRO_BIAS_ACQ_TIMES   50

Number of acquisitions for gyroscope bias removal.

This is the number of acquisitions performed to compute the bias. A repetition is required in order to remove noise.

Definition at line 363 of file lsm6ds0.h.

Referenced by gyro_sample_bias().

◆ LSM6DS0_GYRO_BIAS_SETTLING_US

#define LSM6DS0_GYRO_BIAS_SETTLING_US   5000

Settling time for gyroscope bias removal.

This is the time between each bias acquisition.

Definition at line 371 of file lsm6ds0.h.

Referenced by gyro_sample_bias().

◆ _lsm6ds0_methods_alone

#define _lsm6ds0_methods_alone
Value:
/* Change full scale value of LSM6DS0 accelerometer subsystem .*/ \
/* Change full scale value of LSM6DS0 gyroscope subsystem .*/ \
static msg_t acc_set_full_scale(ADXL355Driver *devp, adxl355_acc_fs_t fs)
Changes the ADXL355Driver accelerometer fullscale value.
Definition adxl355.c:301
static msg_t gyro_set_full_scale(L3GD20Driver *devp, l3gd20_fs_t fs)
Changes the L3GD20Driver gyroscope fullscale value.
Definition l3gd20.c:378
lsm6ds0_acc_fs_t
LSM6DS0 accelerometer subsystem full scale.
Definition lsm6ds0.h:430
lsm6ds0_gyro_fs_t
LSM6DS0 gyroscope subsystem full scale.
Definition lsm6ds0.h:463
LSM6DS0 6-axis accelerometer/gyroscope class.
Definition lsm6ds0.h:709

LSM6DS0 specific methods.

Definition at line 658 of file lsm6ds0.h.

◆ _lsm6ds0_methods

#define _lsm6ds0_methods
Value:
_base_object_methods \
_lsm6ds0_methods_alone

LSM6DS0 specific methods with inherited ones.

Definition at line 667 of file lsm6ds0.h.

◆ _lsm6ds0_data

#define _lsm6ds0_data
Value:
/* Driver state.*/ \
lsm6ds0_state_t state; \
/* Current configuration data.*/ \
const LSM6DS0Config *config; \
/* Accelerometer subsystem axes number.*/ \
size_t accaxes; \
/* Accelerometer subsystem current sensitivity.*/ \
float accsensitivity[LSM6DS0_ACC_NUMBER_OF_AXES]; \
/* Accelerometer subsystem current bias .*/ \
float accbias[LSM6DS0_ACC_NUMBER_OF_AXES]; \
/* Accelerometer subsystem current full scale value.*/ \
float accfullscale; \
/* Gyroscope subsystem axes number.*/ \
size_t gyroaxes; \
/* Gyroscope subsystem current sensitivity.*/ \
float gyrosensitivity[LSM6DS0_GYRO_NUMBER_OF_AXES]; \
/* Gyroscope subsystem current Bias.*/ \
float gyrobias[LSM6DS0_GYRO_NUMBER_OF_AXES]; \
/* Gyroscope subsystem current full scale value.*/ \
float gyrofullscale;
#define _base_sensor_data
BaseSensor specific data.
Definition ex_sensors.h:74
lsm6ds0_state_t
Driver state machine possible states.
Definition lsm6ds0.h:553
#define LSM6DS0_GYRO_NUMBER_OF_AXES
L3GD20 gyroscope system characteristics.
Definition lsm6ds0.h:95
#define LSM6DS0_ACC_NUMBER_OF_AXES
LSM6DS0 accelerometer subsystem characteristics.
Definition lsm6ds0.h:72
LSM6DS0 configuration structure.
Definition lsm6ds0.h:562

LSM6DS0Driver specific data.

Definition at line 683 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerGetAxesNumber

#define lsm6ds0AccelerometerGetAxesNumber ( devp)
Value:
accelerometerGetAxesNumber(&((devp)->acc_if))
#define accelerometerGetAxesNumber(ip)
Accelerometer get axes number.

Return the number of axes of the BaseAccelerometer.

Parameters
[in]devppointer to LSM6DS0Driver.
Returns
the number of axes.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 733 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerReadRaw

#define lsm6ds0AccelerometerReadRaw ( devp,
axes )
Value:
accelerometerReadRaw(&((devp)->acc_if), axes)
#define accelerometerReadRaw(ip, dp)
Accelerometer read raw data.

Retrieves raw data from the BaseAccelerometer.

Note
This data is retrieved from MEMS register without any algebraical manipulation.
The axes array must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[out]axesa buffer which would be filled with raw data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 754 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerReadCooked

#define lsm6ds0AccelerometerReadCooked ( devp,
axes )
Value:
accelerometerReadCooked(&((devp)->acc_if), axes)
#define accelerometerReadCooked(ip, dp)
Accelerometer read cooked data.

Retrieves cooked data from the BaseAccelerometer.

Note
This data is manipulated according to the formula cooked = (raw * sensitivity) - bias.
Final data is expressed as milli-G.
The axes array must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[out]axesa buffer which would be filled with cooked data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 776 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerSetBias

#define lsm6ds0AccelerometerSetBias ( devp,
bp )
Value:
accelerometerSetBias(&((devp)->acc_if), bp)
#define accelerometerSetBias(ip, bp)
Updates accelerometer bias data from received buffer.

Set bias values for the BaseAccelerometer.

Note
Bias must be expressed as milli-G.
The bias buffer must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[in]bpa buffer which contains biases.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 793 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerResetBias

#define lsm6ds0AccelerometerResetBias ( devp)
Value:
accelerometerResetBias(&((devp)->acc_if))
#define accelerometerResetBias(ip)
Reset accelerometer bias data restoring it to zero.

Reset bias values for the BaseAccelerometer.

Note
Default biases value are obtained from device datasheet when available otherwise they are considered zero.
Parameters
[in]devppointer to LSM6DS0Driver.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 808 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerSetSensitivity

#define lsm6ds0AccelerometerSetSensitivity ( devp,
sp )
Value:
accelerometerSetSensitivity(&((devp)->acc_if), sp)
#define accelerometerSetSensitivity(ip, sp)
Updates accelerometer sensitivity data from received buffer.

Set sensitivity values for the BaseAccelerometer.

Note
Sensitivity must be expressed as milli-G/LSB.
The sensitivity buffer must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[in]spa buffer which contains sensitivities.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 825 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerResetSensitivity

#define lsm6ds0AccelerometerResetSensitivity ( devp)
Value:
accelerometerResetSensitivity(&((devp)->acc_if))
#define accelerometerResetSensitivity(ip)
Reset accelerometer sensitivity data restoring it to its typical value.

Reset sensitivity values for the BaseAccelerometer.

Note
Default sensitivities value are obtained from device datasheet.
Parameters
[in]devppointer to LSM6DS0Driver.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 840 of file lsm6ds0.h.

◆ lsm6ds0AccelerometerSetFullScale

#define lsm6ds0AccelerometerSetFullScale ( devp,
fs )
Value:
(devp)->vmt->acc_set_full_scale(devp, fs)
static const struct EFlashDriverVMT vmt
Definition hal_efl.c:71

Changes the LSM6DS0Driver accelerometer fullscale value.

Note
This function also rescale sensitivities and biases based on previous and next fullscale value.
A recalibration is highly suggested after calling this function.
Parameters
[in]devppointer to LSM6DS0Driver.
[in]fsnew fullscale value.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 858 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeGetAxesNumber

#define lsm6ds0GyroscopeGetAxesNumber ( devp)
Value:
gyroscopeGetAxesNumber(&((devp)->gyro_if))
#define gyroscopeGetAxesNumber(ip)
Gyroscope get axes number.

Return the number of axes of the BaseGyroscope.

Parameters
[in]devppointer to LSM6DS0Driver.
Returns
the number of axes.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 870 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeReadRaw

#define lsm6ds0GyroscopeReadRaw ( devp,
axes )
Value:
gyroscopeReadRaw(&((devp)->gyro_if), axes)
#define gyroscopeReadRaw(ip, dp)
Gyroscope read raw data.

Retrieves raw data from the BaseGyroscope.

Note
This data is retrieved from MEMS register without any algebraical manipulation.
The axes array must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[out]axesa buffer which would be filled with raw data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 891 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeReadCooked

#define lsm6ds0GyroscopeReadCooked ( devp,
axes )
Value:
gyroscopeReadCooked(&((devp)->gyro_if), axes)
#define gyroscopeReadCooked(ip, dp)
Gyroscope read cooked data.

Retrieves cooked data from the BaseGyroscope.

Note
This data is manipulated according to the formula cooked = (raw * sensitivity) - bias.
Final data is expressed as DPS.
The axes array must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[out]axesa buffer which would be filled with cooked data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 913 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeSampleBias

#define lsm6ds0GyroscopeSampleBias ( devp)
Value:
gyroscopeSampleBias(&((devp)->gyro_if))
#define gyroscopeSampleBias(ip)
Gyroscope bias sampling procedure.

Samples bias values for the BaseGyroscope.

Note
The LSM6DS0 shall not be moved during the whole procedure.
After this function internal bias is automatically updated.
The behavior of this function depends on LSM6DS0_BIAS_ACQ_TIMES and LSM6DS0_BIAS_SETTLING_US.
Parameters
[in]devppointer to LSM6DS0Driver.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 933 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeSetBias

#define lsm6ds0GyroscopeSetBias ( devp,
bp )
Value:
gyroscopeSetBias(&((devp)->gyro_if), bp)
#define gyroscopeSetBias(ip, bp)
Updates gyroscope bias data from received buffer.

Set bias values for the BaseGyroscope.

Note
Bias must be expressed as DPS.
The bias buffer must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[in]bpa buffer which contains biases.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 950 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeResetBias

#define lsm6ds0GyroscopeResetBias ( devp)
Value:
gyroscopeResetBias(&((devp)->gyro_if))
#define gyroscopeResetBias(ip)
Reset gyroscope bias data restoring it to zero.

Reset bias values for the BaseGyroscope.

Note
Default biases value are obtained from device datasheet when available otherwise they are considered zero.
Parameters
[in]devppointer to LSM6DS0Driver.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 965 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeSetSensitivity

#define lsm6ds0GyroscopeSetSensitivity ( devp,
sp )
Value:
gyroscopeSetSensitivity(&((devp)->gyro_if), sp)
#define gyroscopeSetSensitivity(ip, sp)
Updates gyroscope sensitivity data from received buffer.

Set sensitivity values for the BaseGyroscope.

Note
Sensitivity must be expressed as DPS/LSB.
The sensitivity buffer must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]devppointer to LSM6DS0Driver.
[in]spa buffer which contains sensitivities.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 982 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeResetSensitivity

#define lsm6ds0GyroscopeResetSensitivity ( devp)
Value:
gyroscopeResetSensitivity(&((devp)->gyro_if))
#define gyroscopeResetSensitivity(ip)
Reset gyroscope sensitivity data restoring it to its typical value.

Reset sensitivity values for the BaseGyroscope.

Note
Default sensitivities value are obtained from device datasheet.
Parameters
[in]devppointer to LSM6DS0Driver.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 997 of file lsm6ds0.h.

◆ lsm6ds0GyroscopeSetFullScale

#define lsm6ds0GyroscopeSetFullScale ( devp,
fs )
Value:
(devp)->vmt->acc_set_full_scale(devp, fs)

Changes the LSM6DS0Driver gyroscope fullscale value.

Note
This function also rescale sensitivities and biases based on previous and next fullscale value.
A recalibration is highly suggested after calling this function.
Parameters
[in]devppointer to LSM6DS0Driver.
[in]fsnew fullscale value.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 1015 of file lsm6ds0.h.

Typedef Documentation

◆ LSM6DS0Driver

typedef struct LSM6DS0Driver LSM6DS0Driver

Structure representing a LSM6DS0 driver.

Definition at line 417 of file lsm6ds0.h.

Enumeration Type Documentation

◆ lsm6ds0_sad_t

Accelerometer and Gyroscope Slave Address.

Enumerator
LSM6DS0_SAD_GND 

SAD pin connected to GND.

LSM6DS0_SAD_VCC 

SAD pin connected to VCC.

Definition at line 422 of file lsm6ds0.h.

◆ lsm6ds0_acc_fs_t

LSM6DS0 accelerometer subsystem full scale.

Enumerator
LSM6DS0_ACC_FS_2G 

Full scale �2g.

LSM6DS0_ACC_FS_4G 

Full scale �4g.

LSM6DS0_ACC_FS_8G 

Full scale �8g.

LSM6DS0_ACC_FS_16G 

Full scale �16g.

Definition at line 430 of file lsm6ds0.h.

◆ lsm6ds0_acc_odr_t

LSM6DS0 accelerometer subsystem output data rate.

Enumerator
LSM6DS0_ACC_ODR_PD 

Power down

LSM6DS0_ACC_ODR_10Hz 

ODR 10 Hz

LSM6DS0_ACC_ODR_50Hz 

ODR 50 Hz

LSM6DS0_ACC_ODR_119Hz 

ODR 119 Hz

LSM6DS0_ACC_ODR_238Hz 

ODR 238 Hz

LSM6DS0_ACC_ODR_476Hz 

ODR 476 Hz

LSM6DS0_ACC_ODR_952Hz 

ODR 952 Hz

Definition at line 440 of file lsm6ds0.h.

◆ lsm6ds0_acc_dec_t

LSM6DS0 accelerometer subsystem decimation mode.

Enumerator
LSM6DS0_ACC_DEC_DISABLED 

Decimation disabled.

LSM6DS0_ACC_DEC_X2 

Output updated every 2 samples.

LSM6DS0_ACC_DEC_X4 

Output updated every 4 samples.

LSM6DS0_ACC_DEC_X8 

Output updated every 8 samples.

Definition at line 453 of file lsm6ds0.h.

◆ lsm6ds0_gyro_fs_t

LSM6DS0 gyroscope subsystem full scale.

Enumerator
LSM6DS0_GYRO_FS_245DPS 

Full scale �245 degree per second

LSM6DS0_GYRO_FS_500DPS 

Full scale �500 degree per second

LSM6DS0_GYRO_FS_2000DPS 

Full scale �2000 degree per second

Definition at line 463 of file lsm6ds0.h.

◆ lsm6ds0_gyro_odr_t

LSM6DS0 gyroscope subsystem output data rate.

Enumerator
LSM6DS0_GYRO_ODR_PD 
LSM6DS0_GYRO_ODR_95HZ_FC_25 
LSM6DS0_GYRO_ODR_14_9HZ_FC_5 
LSM6DS0_GYRO_ODR_59_5HZ_FC_16 
LSM6DS0_GYRO_ODR_119HZ_FC_14 
LSM6DS0_GYRO_ODR_119HZ_FC_31 
LSM6DS0_GYRO_ODR_238HZ_FC_14 
LSM6DS0_GYRO_ODR_238HZ_FC_29 
LSM6DS0_GYRO_ODR_238HZ_FC_63 
LSM6DS0_GYRO_ODR_238HZ_FC_78 
LSM6DS0_GYRO_ODR_476HZ_FC_21 
LSM6DS0_GYRO_ODR_476HZ_FC_28 
LSM6DS0_GYRO_ODR_476HZ_FC_57 
LSM6DS0_GYRO_ODR_476HZ_FC_100 
LSM6DS0_GYRO_ODR_952HZ_FC_33 
LSM6DS0_GYRO_ODR_952HZ_FC_40 
LSM6DS0_GYRO_ODR_952HZ_FC_58 
LSM6DS0_GYRO_ODR_952HZ_FC_100 

Definition at line 472 of file lsm6ds0.h.

◆ lsm6ds0_gyro_lp_t

LSM6DS0 gyroscope subsystem low mode configuration.

Enumerator
LSM6DS0_GYRO_LP_DISABLED 

Low power mode disabled.

LSM6DS0_GYRO_LP_ENABLED 

Low power mode enabled.

Definition at line 496 of file lsm6ds0.h.

◆ lsm6ds0_gyro_out_sel_t

LSM6DS0 gyroscope subsystem output selection.

Enumerator
LSM6DS0_GYRO_OUT_SEL_0 

Low pass filter 1.

LSM6DS0_GYRO_OUT_SEL_1 

High pass filter 1 if enabled.

LSM6DS0_GYRO_OUT_SEL_2 

Low pass filter 2.

Definition at line 504 of file lsm6ds0.h.

◆ lsm6ds0_gyro_hp_t

LSM6DS0 gyroscope subsystem high pass filter.

Enumerator
LSM6DS0_GYRO_HP_DISABLED 

High pass filter disabled.

LSM6DS0_GYRO_HP_ENABLED 

High pass filter enabled.

Definition at line 513 of file lsm6ds0.h.

◆ lsm6ds0_gyro_hpcf_t

LSM6DS0 gyroscope subsystem high pass filter configuration.

Enumerator
LSM6DS0_GYRO_HPCF_0 

Refer to table 48 of RM

LSM6DS0_GYRO_HPCF_1 
LSM6DS0_GYRO_HPCF_2 
LSM6DS0_GYRO_HPCF_3 
LSM6DS0_GYRO_HPCF_4 
LSM6DS0_GYRO_HPCF_5 
LSM6DS0_GYRO_HPCF_6 
LSM6DS0_GYRO_HPCF_7 
LSM6DS0_GYRO_HPCF_8 
LSM6DS0_GYRO_HPCF_9 

Definition at line 521 of file lsm6ds0.h.

◆ lsm6ds0_bdu_t

LSM6DS0 block data update.

Enumerator
LSM6DS0_BDU_CONTINUOUS 

Block data continuously updated.

LSM6DS0_BDU_BLOCKED 

Block data updated after reading.

Definition at line 537 of file lsm6ds0.h.

◆ lsm6ds0_end_t

LSM6DS0 endianness.

Enumerator
LSM6DS0_END_LITTLE 

Little endian.

LSM6DS0_END_BIG 

Big endian.

Definition at line 545 of file lsm6ds0.h.

◆ lsm6ds0_state_t

Driver state machine possible states.

Enumerator
LSM6DS0_UNINIT 

Not initialized.

LSM6DS0_STOP 

Stopped.

LSM6DS0_READY 

Ready.

Definition at line 553 of file lsm6ds0.h.

Function Documentation

◆ lsm6ds0I2CReadRegister()

msg_t lsm6ds0I2CReadRegister ( I2CDriver * i2cp,
lsm6ds0_sad_t sad,
uint8_t reg,
uint8_t * rxbuf,
size_t n )

Reads registers value using I2C.

Precondition
The I2C interface must be initialized and the driver started.
Note
IF_ADD_INC bit must be 1 in CTRL_REG8
Parameters
[in]i2cppointer to the I2C interface
[in]sadslave address without R bit
[in]regfirst sub-register address
[out]rxbufpointer to an output buffer
[in]nnumber of consecutive register to read
Returns
the operation status.
Function Class:
Not an API, this function is for internal use only.

Definition at line 63 of file lsm6ds0.c.

References i2cMasterTransmitTimeout(), and TIME_INFINITE.

Referenced by acc_read_raw(), acc_set_full_scale(), gyro_read_raw(), and gyro_set_full_scale().

Here is the call graph for this function:

◆ acc_get_axes_number()

size_t acc_get_axes_number ( void * ip)
static

Return the number of axes of the BaseAccelerometer.

Parameters
[in]ippointer to BaseAccelerometer interface.
Returns
the number of axes.

Definition at line 95 of file lsm6ds0.c.

References LSM6DS0_ACC_NUMBER_OF_AXES.

◆ acc_read_raw()

msg_t acc_read_raw ( void * ip,
int32_t axes[] )
static

Retrieves raw data from the BaseAccelerometer.

Note
This data is retrieved from MEMS register without any algebraical manipulation.
The axes array must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]ippointer to BaseAccelerometer interface.
[out]axesa buffer which would be filled with raw data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.

Definition at line 117 of file lsm6ds0.c.

References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_AD_OUT_X_L_XL, LSM6DS0_READY, lsm6ds0I2CReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

Referenced by acc_read_cooked().

Here is the call graph for this function:

◆ acc_read_cooked()

msg_t acc_read_cooked ( void * ip,
float axes[] )
static

Retrieves cooked data from the BaseAccelerometer.

Note
This data is manipulated according to the formula cooked = (raw * sensitivity) - bias.
Final data is expressed as milli-G.
The axes array must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]ippointer to BaseAccelerometer interface.
[out]axesa buffer which would be filled with cooked data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.

Definition at line 173 of file lsm6ds0.c.

References acc_read_raw(), LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_READY, objGetInstance, osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:

◆ acc_set_bias()

msg_t acc_set_bias ( void * ip,
float * bp )
static

Set bias values for the BaseAccelerometer.

Note
Bias must be expressed as milli-G.
The bias buffer must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]ippointer to BaseAccelerometer interface.
[in]bpa buffer which contains biases.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 206 of file lsm6ds0.c.

References LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ acc_reset_bias()

msg_t acc_reset_bias ( void * ip)
static

Reset bias values for the BaseAccelerometer.

Note
Default biases value are obtained from device datasheet when available otherwise they are considered zero.
Parameters
[in]ippointer to BaseAccelerometer interface.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 235 of file lsm6ds0.c.

References LSM6DS0_ACC_BIAS, LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ acc_set_sensivity()

msg_t acc_set_sensivity ( void * ip,
float * sp )
static

Set sensitivity values for the BaseAccelerometer.

Note
Sensitivity must be expressed as milli-G/LSB.
The sensitivity buffer must be at least the same size of the BaseAccelerometer axes number.
Parameters
[in]ippointer to BaseAccelerometer interface.
[in]spa buffer which contains sensitivities.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 265 of file lsm6ds0.c.

References LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ acc_reset_sensivity()

msg_t acc_reset_sensivity ( void * ip)
static

Reset sensitivity values for the BaseAccelerometer.

Note
Default sensitivities value are obtained from device datasheet.
Parameters
[in]ippointer to BaseAccelerometer interface.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.

Definition at line 294 of file lsm6ds0.c.

References FALSE, LSM6DS0_ACC_FS_16G, LSM6DS0_ACC_FS_2G, LSM6DS0_ACC_FS_4G, LSM6DS0_ACC_FS_8G, LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_ACC_SENS_16G, LSM6DS0_ACC_SENS_2G, LSM6DS0_ACC_SENS_4G, LSM6DS0_ACC_SENS_8G, LSM6DS0_READY, MSG_OK, MSG_RESET, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ acc_set_full_scale()

msg_t acc_set_full_scale ( LSM6DS0Driver * devp,
lsm6ds0_acc_fs_t fs )
static

Changes the LSM6DS0Driver accelerometer fullscale value.

Note
This function also rescale sensitivities and biases based on previous and next fullscale value.
A recalibration is highly suggested after calling this function.
Parameters
[in]devppointer to LSM6DS0Driver interface.
[in]fsnew fullscale value.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.

Definition at line 339 of file lsm6ds0.c.

References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DS0_ACC_16G, LSM6DS0_ACC_2G, LSM6DS0_ACC_4G, LSM6DS0_ACC_8G, LSM6DS0_ACC_FS_16G, LSM6DS0_ACC_FS_2G, LSM6DS0_ACC_FS_4G, LSM6DS0_ACC_FS_8G, LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_AD_CTRL_REG6_XL, LSM6DS0_CTRL_REG6_XL_FS_MASK, LSM6DS0_READY, lsm6ds0I2CReadRegister(), lsm6ds0I2CWriteRegister, MSG_OK, MSG_RESET, osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:

◆ gyro_get_axes_number()

size_t gyro_get_axes_number ( void * ip)
static

Return the number of axes of the BaseGyroscope.

Parameters
[in]ippointer to BaseGyroscope interface.
Returns
the number of axes.

Definition at line 430 of file lsm6ds0.c.

References LSM6DS0_GYRO_NUMBER_OF_AXES.

◆ gyro_read_raw()

msg_t gyro_read_raw ( void * ip,
int32_t axes[LSM6DS0_GYRO_NUMBER_OF_AXES] )
static

Retrieves raw data from the BaseGyroscope.

Note
This data is retrieved from MEMS register without any algebraical manipulation.
The axes array must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]ippointer to BaseGyroscope interface.
[out]axesa buffer which would be filled with raw data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.

Definition at line 452 of file lsm6ds0.c.

References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DS0_AD_OUT_X_L_G, LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, lsm6ds0I2CReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

Referenced by gyro_read_cooked(), and gyro_sample_bias().

Here is the call graph for this function:

◆ gyro_read_cooked()

msg_t gyro_read_cooked ( void * ip,
float axes[] )
static

Retrieves cooked data from the BaseGyroscope.

Note
This data is manipulated according to the formula cooked = (raw * sensitivity) - bias.
Final data is expressed as DPS.
The axes array must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]ippointer to BaseGyroscope interface.
[out]axesa buffer which would be filled with cooked data.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETif one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors().
MSG_TIMEOUTif a timeout occurred before operation end.

Definition at line 508 of file lsm6ds0.c.

References gyro_read_raw(), LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, objGetInstance, osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:

◆ gyro_sample_bias()

msg_t gyro_sample_bias ( void * ip)
static

Samples bias values for the BaseGyroscope.

Note
The LSM6DS0 shall not be moved during the whole procedure.
After this function internal bias is automatically updated.
The behavior of this function depends on LSM6DS0_BIAS_ACQ_TIMES and LSM6DS0_BIAS_SETTLING_US.
Parameters
[in]ippointer to BaseGyroscope interface.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 541 of file lsm6ds0.c.

References gyro_read_raw(), I2C_READY, LSM6DS0_GYRO_BIAS_ACQ_TIMES, LSM6DS0_GYRO_BIAS_SETTLING_US, LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, osalDbgCheck, and osalThreadSleepMicroseconds.

Here is the call graph for this function:

◆ gyro_set_bias()

msg_t gyro_set_bias ( void * ip,
float * bp )
static

Set bias values for the BaseGyroscope.

Note
Bias must be expressed as DPS.
The bias buffer must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]ippointer to BaseGyroscope interface.
[in]bpa buffer which contains biases.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 589 of file lsm6ds0.c.

References LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ gyro_reset_bias()

msg_t gyro_reset_bias ( void * ip)
static

Reset bias values for the BaseGyroscope.

Note
Default biases value are obtained from device datasheet when available otherwise they are considered zero.
Parameters
[in]ippointer to BaseGyroscope interface.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 618 of file lsm6ds0.c.

References LSM6DS0_GYRO_BIAS, LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ gyro_set_sensivity()

msg_t gyro_set_sensivity ( void * ip,
float * sp )
static

Set sensitivity values for the BaseGyroscope.

Note
Sensitivity must be expressed as DPS/LSB.
The sensitivity buffer must be at least the same size of the BaseGyroscope axes number.
Parameters
[in]ippointer to BaseGyroscope interface.
[in]spa buffer which contains sensitivities.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.

Definition at line 648 of file lsm6ds0.c.

References LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ gyro_reset_sensivity()

msg_t gyro_reset_sensivity ( void * ip)
static

Reset sensitivity values for the BaseGyroscope.

Note
Default sensitivities value are obtained from device datasheet.
Parameters
[in]ippointer to BaseGyroscope interface.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.

Definition at line 677 of file lsm6ds0.c.

References FALSE, LSM6DS0_GYRO_FS_2000DPS, LSM6DS0_GYRO_FS_245DPS, LSM6DS0_GYRO_FS_500DPS, LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_GYRO_SENS_2000DPS, LSM6DS0_GYRO_SENS_245DPS, LSM6DS0_GYRO_SENS_500DPS, LSM6DS0_READY, MSG_OK, MSG_RESET, objGetInstance, osalDbgAssert, and osalDbgCheck.

◆ gyro_set_full_scale()

msg_t gyro_set_full_scale ( LSM6DS0Driver * devp,
lsm6ds0_gyro_fs_t fs )
static

Changes the LSM6DS0Driver gyroscope fullscale value.

Note
This function also rescale sensitivities and biases based on previous and next fullscale value.
A recalibration is highly suggested after calling this function.
Parameters
[in]devppointer to BaseGyroscope interface.
[in]fsnew fullscale value.
Returns
The operation status.
Return values
MSG_OKif the function succeeded.
MSG_RESETotherwise.

Definition at line 719 of file lsm6ds0.c.

References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DS0_AD_CTRL_REG1_G, LSM6DS0_CTRL_REG1_G_FS_MASK, LSM6DS0_GYRO_2000DPS, LSM6DS0_GYRO_245DPS, LSM6DS0_GYRO_500DPS, LSM6DS0_GYRO_FS_2000DPS, LSM6DS0_GYRO_FS_245DPS, LSM6DS0_GYRO_FS_500DPS, LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_READY, lsm6ds0I2CReadRegister(), lsm6ds0I2CWriteRegister, MSG_OK, MSG_RESET, osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:

◆ lsm6ds0ObjectInit()

void lsm6ds0ObjectInit ( LSM6DS0Driver * devp)

Initializes an instance.

Parameters
[out]devppointer to the LSM6DS0Driver object
Function Class:
Object or module nitializer function.

Definition at line 824 of file lsm6ds0.c.

References LSM6DS0Driver::acc_if, LSM6DS0Driver::gyro_if, LSM6DS0_ACC_NUMBER_OF_AXES, LSM6DS0_GYRO_NUMBER_OF_AXES, LSM6DS0_STOP, BaseAccelerometer::vmt, BaseGyroscope::vmt, LSM6DS0Driver::vmt, vmt_accelerometer, vmt_device, and vmt_gyroscope.

◆ lsm6ds0Start()

◆ lsm6ds0Stop()

void lsm6ds0Stop ( LSM6DS0Driver * devp)

Deactivates the LSM6DS0 Complex Driver peripheral.

Parameters
[in]devppointer to the LSM6DS0Driver object
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 1077 of file lsm6ds0.c.

References i2cAcquireBus(), i2cReleaseBus(), i2cStart(), i2cStop(), LSM6DS0_AD_CTRL_REG6_XL, LSM6DS0_AD_CTRL_REG9, LSM6DS0_CTRL_REG9_SLEEP_G, LSM6DS0_READY, LSM6DS0_STOP, lsm6ds0I2CWriteRegister, osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:

Variable Documentation

◆ vmt_device

const struct LSM6DS0VMT vmt_device
static
Initial value:

Definition at line 795 of file lsm6ds0.c.

◆ vmt_accelerometer

const struct BaseAccelerometerVMT vmt_accelerometer
static
Initial value:
= {
sizeof(struct LSM6DS0VMT*),
}
static size_t acc_get_axes_number(void *ip)
Return the number of axes of the BaseAccelerometer.
Definition adxl317.c:115
static msg_t acc_reset_sensivity(void *ip)
Reset sensitivity values for the BaseAccelerometer.
Definition adxl317.c:310
static msg_t acc_set_bias(void *ip, float *bp)
Set bias values for the BaseAccelerometer.
Definition adxl317.c:222
static msg_t acc_reset_bias(void *ip)
Reset bias values for the BaseAccelerometer.
Definition adxl317.c:251
static msg_t acc_set_sensivity(void *ip, float *sp)
Set sensitivity values for the BaseAccelerometer.
Definition adxl317.c:281
static msg_t acc_read_cooked(void *ip, float axes[])
Retrieves cooked data from the BaseAccelerometer.
Definition adxl317.c:185
static msg_t acc_read_raw(void *ip, int32_t axes[])
Retrieves raw data from the BaseAccelerometer.
Definition adxl317.c:137
LSM6DS0 virtual methods table.
Definition lsm6ds0.h:676

Definition at line 800 of file lsm6ds0.c.

◆ vmt_gyroscope

const struct BaseGyroscopeVMT vmt_gyroscope
static
Initial value:
= {
sizeof(struct LSM6DS0VMT*) + sizeof(BaseAccelerometer),
}
static msg_t gyro_set_sensivity(void *ip, float *sp)
Set sensitivity values for the BaseGyroscope.
Definition l3gd20.c:307
static size_t gyro_get_axes_number(void *ip)
Return the number of axes of the BaseGyroscope.
Definition l3gd20.c:96
static msg_t gyro_read_raw(void *ip, int32_t axes[L3GD20_GYRO_NUMBER_OF_AXES])
Retrieves raw data from the BaseGyroscope.
Definition l3gd20.c:115
static msg_t gyro_sample_bias(void *ip)
Samples bias values for the BaseGyroscope.
Definition l3gd20.c:200
static msg_t gyro_read_cooked(void *ip, float axes[])
Retrieves cooked data from the BaseGyroscope.
Definition l3gd20.c:167
static msg_t gyro_set_bias(void *ip, float *bp)
Set bias values for the BaseGyroscope.
Definition l3gd20.c:248
static msg_t gyro_reset_sensivity(void *ip)
Reset sensitivity values for the BaseGyroscope.
Definition l3gd20.c:336
static msg_t gyro_reset_bias(void *ip)
Reset bias values for the BaseGyroscope.
Definition l3gd20.c:277
Base accelerometer class.

Definition at line 806 of file lsm6ds0.c.