ChibiOS 21.11.4
|
Version identification | |
#define | EX_LSM6DSL_VERSION "1.0.2" |
LSM6DSL driver version string. | |
#define | EX_LSM6DSL_MAJOR 1 |
LSM6DSL driver version major number. | |
#define | EX_LSM6DSL_MINOR 0 |
LSM6DSL driver version minor number. | |
#define | EX_LSM6DSL_PATCH 2 |
LSM6DSL driver version patch number. | |
#define | LSM6DSL_ACC_NUMBER_OF_AXES 3U |
LSM6DSL accelerometer subsystem characteristics. | |
#define | LSM6DSL_ACC_2G 2.0f |
#define | LSM6DSL_ACC_4G 4.0f |
#define | LSM6DSL_ACC_8G 8.0f |
#define | LSM6DSL_ACC_16G 16.0f |
#define | LSM6DSL_ACC_SENS_2G 0.061f |
#define | LSM6DSL_ACC_SENS_4G 0.122f |
#define | LSM6DSL_ACC_SENS_8G 0.244f |
#define | LSM6DSL_ACC_SENS_16G 0.488f |
#define | LSM6DSL_ACC_BIAS 0.0f |
#define | LSM6DSL_GYRO_NUMBER_OF_AXES 3U |
L3GD20 gyroscope system characteristics. | |
#define | LSM6DSL_GYRO_125DPS 125.0f |
#define | LSM6DSL_GYRO_250DPS 250.0f |
#define | LSM6DSL_GYRO_500DPS 500.0f |
#define | LSM6DSL_GYRO_1000DPS 1000.0f |
#define | LSM6DSL_GYRO_2000DPS 2000.0f |
#define | LSM6DSL_GYRO_SENS_125DPS 0.004375f |
#define | LSM6DSL_GYRO_SENS_250DPS 0.008750f |
#define | LSM6DSL_GYRO_SENS_500DPS 0.017500f |
#define | LSM6DSL_GYRO_SENS_1000DPS 0.035000f |
#define | LSM6DSL_GYRO_SENS_2000DPS 0.070000f |
#define | LSM6DSL_GYRO_BIAS 0.0f |
LSM6DSL communication interfaces related bit masks | |
#define | LSM6DSL_DI_MASK 0xFF |
#define | LSM6DSL_DI(n) |
#define | LSM6DSL_AD_MASK 0x7F |
#define | LSM6DSL_AD(n) |
#define | LSM6DSL_MS (1 << 7) |
LSM6DSL_AD_CTRL1_XL register bits definitions | |
#define | LSMDSL_CTRL1_XL_BW0_XL (1 << 0) |
#define | LSMDSL_CTRL1_XL_LPF1_BW_SEL (1 << 1) |
#define | LSMDSL_CTRL1_XL_FS_MASK 0x0C |
#define | LSMDSL_CTRL1_XL_FS_XL0 (1 << 2) |
#define | LSMDSL_CTRL1_XL_FS_XL1 (1 << 3) |
#define | LSMDSL_CTRL1_XL_ODR_XL0 (1 << 4) |
#define | LSMDSL_CTRL1_XL_ODR_XL1 (1 << 5) |
#define | LSMDSL_CTRL1_XL_ODR_XL2 (1 << 6) |
#define | LSMDSL_CTRL1_XL_ODR_XL3 (1 << 7) |
LSM6DSL_AD_CTRL2_G register bits definitions | |
#define | LSMDSL_CTRL2_G_FS_MASK 0x0E |
#define | LSMDSL_CTRL2_G_FS_125 (1 << 1) |
#define | LSMDSL_CTRL2_G_FS_G0 (1 << 2) |
#define | LSMDSL_CTRL2_G_FS_G1 (1 << 3) |
#define | LSMDSL_CTRL2_G_ODR_G0 (1 << 4) |
#define | LSMDSL_CTRL2_G_ODR_G1 (1 << 5) |
#define | LSMDSL_CTRL2_G_ODR_G2 (1 << 6) |
#define | LSMDSL_CTRL2_G_ODR_G3 (1 << 7) |
LSM6DSL_AD_CTRL3_C register bits definitions | |
#define | LSMDSL_CTRL3_C_SW_RESET (1 << 0) |
#define | LSMDSL_CTRL3_C_BLE (1 << 1) |
#define | LSMDSL_CTRL3_C_IF_INC (1 << 2) |
#define | LSMDSL_CTRL3_C_SIM (1 << 3) |
#define | LSMDSL_CTRL3_C_PP_OD (1 << 4) |
#define | LSMDSL_CTRL3_C_H_LACTIVE (1 << 5) |
#define | LSMDSL_CTRL3_C_BDU (1 << 6) |
#define | LSMDSL_CTRL3_C_BOOT (1 << 7) |
LSM6DSL_AD_CTRL4_C register bits definitions | |
#define | LSMDSL_CTRL4_C_NOT_USED_01 (1 << 0) |
#define | LSMDSL_CTRL4_C_LPF1_SEL_G (1 << 1) |
#define | LSMDSL_CTRL4_C_I2C_DISABLE (1 << 2) |
#define | LSMDSL_CTRL4_C_DRDY_MASK (1 << 3) |
#define | LSMDSL_CTRL4_C_DEN_DRDY_IN (1 << 4) |
#define | LSMDSL_CTRL4_C_INT2_ON_INT (1 << 5) |
#define | LSMDSL_CTRL4_C_SLEEP (1 << 6) |
#define | LSMDSL_CTRL4_C_DEN_XL_EN (1 << 7) |
LSM6DSL_AD_CTRL5_C register bits definitions | |
#define | LSMDSL_CTRL5_C_ST0_XL (1 << 0) |
#define | LSMDSL_CTRL5_C_ST1_XL (1 << 1) |
#define | LSMDSL_CTRL5_C_ST0_G (1 << 2) |
#define | LSMDSL_CTRL5_C_ST1_G (1 << 3) |
#define | LSMDSL_CTRL5_C_DEN_LH (1 << 4) |
#define | LSMDSL_CTRL5_C_ROUNDING0 (1 << 5) |
#define | LSMDSL_CTRL5_C_ROUNDING1 (1 << 6) |
#define | LSMDSL_CTRL5_C_ROUNDING2 (1 << 7) |
LSM6DSL_AD_CTRL6_C register bits definitions | |
#define | LSMDSL_CTRL6_C_FTYPE_0 (1 << 0) |
#define | LSMDSL_CTRL6_C_FTYPE_1 (1 << 1) |
#define | LSMDSL_CTRL6_C_USR_OFF_W (1 << 3) |
#define | LSMDSL_CTRL6_C_XL_HM_MODE (1 << 4) |
#define | LSMDSL_CTRL6_C_LVL2_EN (1 << 5) |
#define | LSMDSL_CTRL6_C_LVL_EN (1 << 6) |
#define | LSMDSL_CTRL6_C_TRIG_EN (1 << 7) |
LSM6DSL_AD_CTRL7_G register bits definitions | |
#define | LSMDSL_CTRL7_G_ROUNDING_ST (1 << 2) |
#define | LSMDSL_CTRL7_G_HPM0_G (1 << 4) |
#define | LSMDSL_CTRL7_G_HPM1_G (1 << 5) |
#define | LSMDSL_CTRL7_G_HP_EN_G (1 << 6) |
#define | LSMDSL_CTRL7_G_G_HM_MODE (1 << 7) |
LSM6DSL_AD_CTRL8_XL register bits definitions | |
#define | LSMDSL_CTRL8_XL_LOW_PASS_ON (1 << 0) |
#define | LSMDSL_CTRL8_XL_HP_SLOPE_XL (1 << 2) |
#define | LSMDSL_CTRL8_XL_INPUT_COMPO (1 << 3) |
#define | LSMDSL_CTRL8_XL_HP_REF_MODE (1 << 4) |
#define | LSMDSL_CTRL8_XL_HPCF_XL0 (1 << 5) |
#define | LSMDSL_CTRL8_XL_HPCF_XL1 (1 << 6) |
#define | LSMDSL_CTRL8_XL_LPF2_XL_EN (1 << 7) |
LSM6DSL_AD_CTRL9_XL register bits definitions | |
#define | LSMDSL_CTRL9_XL_SOFT_EN (1 << 2) |
#define | LSMDSL_CTRL9_XL_DEN_XL_G (1 << 4) |
#define | LSMDSL_CTRL9_XL_DEN_Z (1 << 5) |
#define | LSMDSL_CTRL9_XL_DEN_Y (1 << 6) |
#define | LSMDSL_CTRL9_XL_DEN_X (1 << 7) |
LSM6DSL_AD_CTRL10_C register bits definitions | |
#define | LSMDSL_CTRL10_C_SIGN_MOTION (1 << 0) |
#define | LSMDSL_CTRL10_C_PEDO_RST_ST (1 << 1) |
#define | LSMDSL_CTRL10_C_FUNC_EN (1 << 2) |
#define | LSMDSL_CTRL10_C_TILT_EN (1 << 3) |
#define | LSMDSL_CTRL10_C_PEDO_EN (1 << 4) |
#define | LSMDSL_CTRL10_C_TIMER_EN (1 << 5) |
#define | LSMDSL_CTRL10_C_WRIST_TILT (1 << 7) |
Configuration options | |
#define | LSM6DSL_USE_SPI FALSE |
LSM6DSL SPI interface switch. | |
#define | LSM6DSL_SHARED_SPI FALSE |
LSM6DSL shared SPI switch. | |
#define | LSM6DSL_USE_I2C TRUE |
LSM6DSL I2C interface switch. | |
#define | LSM6DSL_SHARED_I2C FALSE |
LSM6DSL shared I2C switch. | |
#define | LSM6DSL_USE_ADVANCED FALSE |
LSM6DSL advanced configurations switch. | |
#define | LSM6DSL_GYRO_BIAS_ACQ_TIMES 50 |
Number of acquisitions for gyroscope bias removal. | |
#define | LSM6DSL_GYRO_BIAS_SETTLING_US 5000 |
Settling time for gyroscope bias removal. |
Data Structures | |
struct | LSM6DSLConfig |
LSM6DSL configuration structure. More... | |
struct | LSM6DSLVMT |
LSM6DSL virtual methods table. More... | |
struct | LSM6DSLDriver |
LSM6DSL 6-axis accelerometer/gyroscope class. More... |
Macros | |
#define | lsm6dslI2CWriteRegister(i2cp, sad, txbuf, n) |
Writes a value into a register using I2C. | |
#define | lsm6dslAccelerometerGetAxesNumber(devp) |
Return the number of axes of the BaseAccelerometer. | |
#define | lsm6dslAccelerometerReadRaw(devp, axes) |
Retrieves raw data from the BaseAccelerometer. | |
#define | lsm6dslAccelerometerReadCooked(devp, axes) |
Retrieves cooked data from the BaseAccelerometer. | |
#define | lsm6dslAccelerometerSetBias(devp, bp) |
Set bias values for the BaseAccelerometer. | |
#define | lsm6dslAccelerometerResetBias(devp) |
Reset bias values for the BaseAccelerometer. | |
#define | lsm6dslAccelerometerSetSensitivity(devp, sp) |
Set sensitivity values for the BaseAccelerometer. | |
#define | lsm6dslAccelerometerResetSensitivity(devp) |
Reset sensitivity values for the BaseAccelerometer. | |
#define | lsm6dslAccelerometerSetFullScale(devp, fs) |
Changes the LSM6DSLDriver accelerometer fullscale value. | |
#define | lsm6dslGyroscopeGetAxesNumber(devp) |
Return the number of axes of the BaseGyroscope. | |
#define | lsm6dslGyroscopeReadRaw(devp, axes) |
Retrieves raw data from the BaseGyroscope. | |
#define | lsm6dslGyroscopeReadCooked(devp, axes) |
Retrieves cooked data from the BaseGyroscope. | |
#define | lsm6dslGyroscopeSampleBias(devp) |
Samples bias values for the BaseGyroscope. | |
#define | lsm6dslGyroscopeSetBias(devp, bp) |
Set bias values for the BaseGyroscope. | |
#define | lsm6dslGyroscopeResetBias(devp) |
Reset bias values for the BaseGyroscope. | |
#define | lsm6dslGyroscopeSetSensitivity(devp, sp) |
Set sensitivity values for the BaseGyroscope. | |
#define | lsm6dslGyroscopeResetSensitivity(devp) |
Reset sensitivity values for the BaseGyroscope. | |
#define | lsm6dslGyroscopeSetFullScale(devp, fs) |
Changes the LSM6DSLDriver gyroscope fullscale value. |
Functions | |
msg_t | lsm6dslI2CReadRegister (I2CDriver *i2cp, lsm6dsl_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 (LSM6DSLDriver *devp, lsm6dsl_acc_fs_t fs) |
Changes the LSM6DSLDriver 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[LSM6DSL_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 (LSM6DSLDriver *devp, lsm6dsl_gyro_fs_t fs) |
Changes the LSM6DSLDriver gyroscope fullscale value. | |
void | lsm6dslObjectInit (LSM6DSLDriver *devp) |
Initializes an instance. | |
void | lsm6dslStart (LSM6DSLDriver *devp, const LSM6DSLConfig *config) |
Configures and activates LSM6DSL Complex Driver peripheral. | |
void | lsm6dslStop (LSM6DSLDriver *devp) |
Deactivates the LSM6DSL Complex Driver peripheral. |
Variables | |
static const struct LSM6DSLVMT | vmt_device |
static const struct BaseAccelerometerVMT | vmt_accelerometer |
static const struct BaseGyroscopeVMT | vmt_gyroscope |
#define lsm6dslI2CWriteRegister | ( | i2cp, | |
sad, | |||
txbuf, | |||
n ) |
Writes a value into a register using I2C.
[in] | i2cp | pointer to the I2C interface |
[in] | sad | slave address without R bit |
[in] | txbuf | buffer containing sub-address value in first position and values to write |
[in] | n | size of txbuf less one (not considering the first element) |
Definition at line 83 of file lsm6dsl.c.
Referenced by acc_set_full_scale(), gyro_set_full_scale(), lsm6dslStart(), and lsm6dslStop().
#define EX_LSM6DSL_VERSION "1.0.2" |
#define EX_LSM6DSL_MAJOR 1 |
#define EX_LSM6DSL_MINOR 0 |
#define EX_LSM6DSL_PATCH 2 |
#define LSM6DSL_ACC_NUMBER_OF_AXES 3U |
LSM6DSL accelerometer subsystem characteristics.
Definition at line 72 of file lsm6dsl.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(), lsm6dslObjectInit(), and lsm6dslStart().
#define LSM6DSL_ACC_2G 2.0f |
Definition at line 74 of file lsm6dsl.h.
Referenced by acc_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_ACC_4G 4.0f |
Definition at line 75 of file lsm6dsl.h.
Referenced by acc_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_ACC_8G 8.0f |
Definition at line 76 of file lsm6dsl.h.
Referenced by acc_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_ACC_16G 16.0f |
Definition at line 77 of file lsm6dsl.h.
Referenced by acc_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_ACC_SENS_2G 0.061f |
Definition at line 79 of file lsm6dsl.h.
Referenced by acc_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_ACC_SENS_4G 0.122f |
Definition at line 80 of file lsm6dsl.h.
Referenced by acc_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_ACC_SENS_8G 0.244f |
Definition at line 81 of file lsm6dsl.h.
Referenced by acc_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_ACC_SENS_16G 0.488f |
Definition at line 82 of file lsm6dsl.h.
Referenced by acc_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_ACC_BIAS 0.0f |
Definition at line 84 of file lsm6dsl.h.
Referenced by acc_reset_bias(), and lsm6dslStart().
#define LSM6DSL_GYRO_NUMBER_OF_AXES 3U |
L3GD20 gyroscope system characteristics.
Definition at line 95 of file lsm6dsl.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(), lsm6dslObjectInit(), and lsm6dslStart().
#define LSM6DSL_GYRO_125DPS 125.0f |
Definition at line 97 of file lsm6dsl.h.
Referenced by gyro_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_GYRO_250DPS 250.0f |
Definition at line 98 of file lsm6dsl.h.
Referenced by gyro_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_GYRO_500DPS 500.0f |
Definition at line 99 of file lsm6dsl.h.
Referenced by gyro_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_GYRO_1000DPS 1000.0f |
Definition at line 100 of file lsm6dsl.h.
Referenced by gyro_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_GYRO_2000DPS 2000.0f |
Definition at line 101 of file lsm6dsl.h.
Referenced by gyro_set_full_scale(), and lsm6dslStart().
#define LSM6DSL_GYRO_SENS_125DPS 0.004375f |
Definition at line 103 of file lsm6dsl.h.
Referenced by gyro_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_GYRO_SENS_250DPS 0.008750f |
Definition at line 104 of file lsm6dsl.h.
Referenced by gyro_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_GYRO_SENS_500DPS 0.017500f |
Definition at line 105 of file lsm6dsl.h.
Referenced by gyro_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_GYRO_SENS_1000DPS 0.035000f |
Definition at line 106 of file lsm6dsl.h.
Referenced by gyro_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_GYRO_SENS_2000DPS 0.070000f |
Definition at line 107 of file lsm6dsl.h.
Referenced by gyro_reset_sensivity(), and lsm6dslStart().
#define LSM6DSL_GYRO_BIAS 0.0f |
Definition at line 109 of file lsm6dsl.h.
Referenced by gyro_reset_bias(), and lsm6dslStart().
#define LSM6DSL_AD_CTRL1_XL 0x10 |
Definition at line 139 of file lsm6dsl.h.
Referenced by acc_set_full_scale(), lsm6dslStart(), and lsm6dslStop().
#define LSM6DSL_AD_CTRL2_G 0x11 |
Definition at line 140 of file lsm6dsl.h.
Referenced by gyro_set_full_scale().
#define LSM6DSL_AD_CTRL3_C 0x12 |
Definition at line 141 of file lsm6dsl.h.
Referenced by lsm6dslStart().
#define LSM6DSL_AD_OUTX_L_G 0x22 |
Definition at line 156 of file lsm6dsl.h.
Referenced by gyro_read_raw().
#define LSM6DSL_AD_OUTX_L_XL 0x28 |
Definition at line 162 of file lsm6dsl.h.
Referenced by acc_read_raw().
#define LSMDSL_CTRL1_XL_FS_MASK 0x0C |
Definition at line 229 of file lsm6dsl.h.
Referenced by acc_set_full_scale().
#define LSMDSL_CTRL2_G_FS_MASK 0x0E |
Definition at line 242 of file lsm6dsl.h.
Referenced by gyro_set_full_scale().
#define LSMDSL_CTRL3_C_IF_INC (1 << 2) |
Definition at line 258 of file lsm6dsl.h.
Referenced by lsm6dslStart().
#define LSMDSL_CTRL4_C_LPF1_SEL_G (1 << 1) |
Definition at line 271 of file lsm6dsl.h.
Referenced by lsm6dslStart().
#define LSM6DSL_USE_SPI FALSE |
#define LSM6DSL_SHARED_SPI FALSE |
#define LSM6DSL_USE_I2C TRUE |
#define LSM6DSL_SHARED_I2C FALSE |
#define LSM6DSL_USE_ADVANCED FALSE |
#define LSM6DSL_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 416 of file lsm6dsl.h.
Referenced by gyro_sample_bias().
#define LSM6DSL_GYRO_BIAS_SETTLING_US 5000 |
Settling time for gyroscope bias removal.
This is the time between each bias acquisition.
Definition at line 424 of file lsm6dsl.h.
Referenced by gyro_sample_bias().
#define _lsm6dsl_methods_alone |
LSM6DSL
specific methods.
#define _lsm6dsl_methods |
#define _lsm6dsl_data |
LSM6DSLDriver
specific data.
#define lsm6dslAccelerometerGetAxesNumber | ( | devp | ) |
Return the number of axes of the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
#define lsm6dslAccelerometerReadRaw | ( | devp, | |
axes ) |
Retrieves raw data from the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lsm6dslAccelerometerReadCooked | ( | devp, | |
axes ) |
Retrieves cooked data from the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lsm6dslAccelerometerSetBias | ( | devp, | |
bp ) |
Set bias values for the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
#define lsm6dslAccelerometerResetBias | ( | devp | ) |
Reset bias values for the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
MSG_OK | if the function succeeded. |
#define lsm6dslAccelerometerSetSensitivity | ( | devp, | |
sp ) |
Set sensitivity values for the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
#define lsm6dslAccelerometerResetSensitivity | ( | devp | ) |
Reset sensitivity values for the BaseAccelerometer.
[in] | devp | pointer to LSM6DSLDriver . |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
#define lsm6dslAccelerometerSetFullScale | ( | devp, | |
fs ) |
Changes the LSM6DSLDriver accelerometer fullscale value.
[in] | devp | pointer to LSM6DSLDriver . |
[in] | fs | new fullscale value. |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
#define lsm6dslGyroscopeGetAxesNumber | ( | devp | ) |
Return the number of axes of the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
#define lsm6dslGyroscopeReadRaw | ( | devp, | |
axes ) |
Retrieves raw data from the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lsm6dslGyroscopeReadCooked | ( | devp, | |
axes ) |
Retrieves cooked data from the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lsm6dslGyroscopeSampleBias | ( | devp | ) |
Samples bias values for the BaseGyroscope.
LSM6DSL_BIAS_ACQ_TIMES
and LSM6DSL_BIAS_SETTLING_US
.[in] | devp | pointer to LSM6DSLDriver . |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lsm6dslGyroscopeSetBias | ( | devp, | |
bp ) |
Set bias values for the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
#define lsm6dslGyroscopeResetBias | ( | devp | ) |
Reset bias values for the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
MSG_OK | if the function succeeded. |
#define lsm6dslGyroscopeSetSensitivity | ( | devp, | |
sp ) |
Set sensitivity values for the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
#define lsm6dslGyroscopeResetSensitivity | ( | devp | ) |
Reset sensitivity values for the BaseGyroscope.
[in] | devp | pointer to LSM6DSLDriver . |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
#define lsm6dslGyroscopeSetFullScale | ( | devp, | |
fs ) |
Changes the LSM6DSLDriver gyroscope fullscale value.
[in] | devp | pointer to LSM6DSLDriver . |
[in] | fs | new fullscale value. |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
typedef struct LSM6DSLDriver LSM6DSLDriver |
enum lsm6dsl_sad_t |
enum lsm6dsl_acc_fs_t |
enum lsm6dsl_acc_odr_t |
LSM6DSL accelerometer subsystem output data rate.
enum lsm6dsl_acc_lp_t |
enum lsm6dsl_gyro_fs_t |
LSM6DSL gyroscope subsystem full scale.
enum lsm6dsl_gyro_odr_t |
LSM6DSL gyroscope subsystem output data rate.
enum lsm6dsl_gyro_lp_t |
enum lsm6dsl_gyro_lpf_t |
LSM6DSL gyroscope subsystem output selection.
enum lsm6dsl_bdu_t |
enum lsm6dsl_end_t |
enum lsm6dsl_state_t |
msg_t lsm6dslI2CReadRegister | ( | I2CDriver * | i2cp, |
lsm6dsl_sad_t | sad, | ||
uint8_t | reg, | ||
uint8_t * | rxbuf, | ||
size_t | n ) |
Reads registers value using I2C.
[in] | i2cp | pointer to the I2C interface |
[in] | sad | slave address without R bit |
[in] | reg | first sub-register address |
[out] | rxbuf | pointer to an output buffer |
[in] | n | number of consecutive register to read |
Definition at line 63 of file lsm6dsl.c.
References i2cMasterTransmitTimeout(), and TIME_INFINITE.
Referenced by acc_read_raw(), acc_set_full_scale(), gyro_read_raw(), and gyro_set_full_scale().
|
static |
Return the number of axes of the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
Definition at line 95 of file lsm6dsl.c.
References LSM6DSL_ACC_NUMBER_OF_AXES.
|
static |
Retrieves raw data from the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 117 of file lsm6dsl.c.
References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_AD_OUTX_L_XL, LSM6DSL_READY, lsm6dslI2CReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
Referenced by acc_read_cooked().
|
static |
Retrieves cooked data from the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 173 of file lsm6dsl.c.
References acc_read_raw(), LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_READY, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set bias values for the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
Definition at line 206 of file lsm6dsl.c.
References LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset bias values for the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
MSG_OK | if the function succeeded. |
Definition at line 235 of file lsm6dsl.c.
References LSM6DSL_ACC_BIAS, LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set sensitivity values for the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
Definition at line 265 of file lsm6dsl.c.
References LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset sensitivity values for the BaseAccelerometer.
[in] | ip | pointer to BaseAccelerometer interface. |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
Definition at line 294 of file lsm6dsl.c.
References FALSE, LSM6DSL_ACC_FS_16G, LSM6DSL_ACC_FS_2G, LSM6DSL_ACC_FS_4G, LSM6DSL_ACC_FS_8G, LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_ACC_SENS_16G, LSM6DSL_ACC_SENS_2G, LSM6DSL_ACC_SENS_4G, LSM6DSL_ACC_SENS_8G, LSM6DSL_READY, MSG_OK, MSG_RESET, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Changes the LSM6DSLDriver accelerometer fullscale value.
[in] | devp | pointer to LSM6DSLDriver interface. |
[in] | fs | new fullscale value. |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
Definition at line 339 of file lsm6dsl.c.
References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DSL_ACC_16G, LSM6DSL_ACC_2G, LSM6DSL_ACC_4G, LSM6DSL_ACC_8G, LSM6DSL_ACC_FS_16G, LSM6DSL_ACC_FS_2G, LSM6DSL_ACC_FS_4G, LSM6DSL_ACC_FS_8G, LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_AD_CTRL1_XL, LSM6DSL_READY, lsm6dslI2CReadRegister(), lsm6dslI2CWriteRegister, LSMDSL_CTRL1_XL_FS_MASK, MSG_OK, MSG_RESET, osalDbgAssert, and osalDbgCheck.
|
static |
Return the number of axes of the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
Definition at line 430 of file lsm6dsl.c.
References LSM6DSL_GYRO_NUMBER_OF_AXES.
|
static |
Retrieves raw data from the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 452 of file lsm6dsl.c.
References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DSL_AD_OUTX_L_G, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, lsm6dslI2CReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
Referenced by gyro_read_cooked(), and gyro_sample_bias().
|
static |
Retrieves cooked data from the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 508 of file lsm6dsl.c.
References gyro_read_raw(), LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Samples bias values for the BaseGyroscope.
LSM6DSL_BIAS_ACQ_TIMES
and LSM6DSL_BIAS_SETTLING_US
.[in] | ip | pointer to BaseGyroscope interface. |
MSG_OK | if the function succeeded. |
Definition at line 541 of file lsm6dsl.c.
References gyro_read_raw(), I2C_READY, LSM6DSL_GYRO_BIAS_ACQ_TIMES, LSM6DSL_GYRO_BIAS_SETTLING_US, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, osalDbgCheck, and osalThreadSleepMicroseconds.
|
static |
Set bias values for the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
Definition at line 589 of file lsm6dsl.c.
References LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset bias values for the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
MSG_OK | if the function succeeded. |
Definition at line 618 of file lsm6dsl.c.
References LSM6DSL_GYRO_BIAS, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set sensitivity values for the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
Definition at line 648 of file lsm6dsl.c.
References LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset sensitivity values for the BaseGyroscope.
[in] | ip | pointer to BaseGyroscope interface. |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
Definition at line 677 of file lsm6dsl.c.
References FALSE, LSM6DSL_GYRO_FS_1000DPS, LSM6DSL_GYRO_FS_125DPS, LSM6DSL_GYRO_FS_2000DPS, LSM6DSL_GYRO_FS_250DPS, LSM6DSL_GYRO_FS_500DPS, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_GYRO_SENS_1000DPS, LSM6DSL_GYRO_SENS_125DPS, LSM6DSL_GYRO_SENS_2000DPS, LSM6DSL_GYRO_SENS_250DPS, LSM6DSL_GYRO_SENS_500DPS, LSM6DSL_READY, MSG_OK, MSG_RESET, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Changes the LSM6DSLDriver gyroscope fullscale value.
[in] | devp | pointer to BaseGyroscope interface. |
[in] | fs | new fullscale value. |
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
Definition at line 724 of file lsm6dsl.c.
References I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DSL_AD_CTRL2_G, LSM6DSL_GYRO_1000DPS, LSM6DSL_GYRO_125DPS, LSM6DSL_GYRO_2000DPS, LSM6DSL_GYRO_250DPS, LSM6DSL_GYRO_500DPS, LSM6DSL_GYRO_FS_1000DPS, LSM6DSL_GYRO_FS_125DPS, LSM6DSL_GYRO_FS_2000DPS, LSM6DSL_GYRO_FS_250DPS, LSM6DSL_GYRO_FS_500DPS, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_READY, lsm6dslI2CReadRegister(), lsm6dslI2CWriteRegister, LSMDSL_CTRL2_G_FS_MASK, MSG_OK, MSG_RESET, osalDbgAssert, and osalDbgCheck.
void lsm6dslObjectInit | ( | LSM6DSLDriver * | devp | ) |
Initializes an instance.
[out] | devp | pointer to the LSM6DSLDriver object |
Definition at line 835 of file lsm6dsl.c.
References LSM6DSLDriver::acc_if, LSM6DSLDriver::gyro_if, LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_STOP, BaseAccelerometer::vmt, BaseGyroscope::vmt, LSM6DSLDriver::vmt, vmt_accelerometer, vmt_device, and vmt_gyroscope.
void lsm6dslStart | ( | LSM6DSLDriver * | devp, |
const LSM6DSLConfig * | config ) |
Configures and activates LSM6DSL Complex Driver peripheral.
[in] | devp | pointer to the LSM6DSLDriver object |
[in] | config | pointer to the LSM6DSLConfig object |
Definition at line 856 of file lsm6dsl.c.
References FALSE, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), LSM6DSL_ACC_16G, LSM6DSL_ACC_2G, LSM6DSL_ACC_4G, LSM6DSL_ACC_8G, LSM6DSL_ACC_BIAS, LSM6DSL_ACC_FS_16G, LSM6DSL_ACC_FS_2G, LSM6DSL_ACC_FS_4G, LSM6DSL_ACC_FS_8G, LSM6DSL_ACC_NUMBER_OF_AXES, LSM6DSL_ACC_SENS_16G, LSM6DSL_ACC_SENS_2G, LSM6DSL_ACC_SENS_4G, LSM6DSL_ACC_SENS_8G, LSM6DSL_AD_CTRL1_XL, LSM6DSL_AD_CTRL3_C, LSM6DSL_GYRO_1000DPS, LSM6DSL_GYRO_125DPS, LSM6DSL_GYRO_2000DPS, LSM6DSL_GYRO_250DPS, LSM6DSL_GYRO_500DPS, LSM6DSL_GYRO_BIAS, LSM6DSL_GYRO_FS_1000DPS, LSM6DSL_GYRO_FS_125DPS, LSM6DSL_GYRO_FS_2000DPS, LSM6DSL_GYRO_FS_250DPS, LSM6DSL_GYRO_FS_500DPS, LSM6DSL_GYRO_LPF_DISABLED, LSM6DSL_GYRO_NUMBER_OF_AXES, LSM6DSL_GYRO_SENS_1000DPS, LSM6DSL_GYRO_SENS_125DPS, LSM6DSL_GYRO_SENS_2000DPS, LSM6DSL_GYRO_SENS_250DPS, LSM6DSL_GYRO_SENS_500DPS, LSM6DSL_READY, LSM6DSL_STOP, lsm6dslI2CWriteRegister, LSMDSL_CTRL3_C_IF_INC, LSMDSL_CTRL4_C_LPF1_SEL_G, osalDbgAssert, osalDbgCheck, and osalThreadSleepMilliseconds.
void lsm6dslStop | ( | LSM6DSLDriver * | devp | ) |
Deactivates the LSM6DSL Complex Driver peripheral.
[in] | devp | pointer to the LSM6DSLDriver object |
Definition at line 1090 of file lsm6dsl.c.
References i2cAcquireBus(), i2cReleaseBus(), i2cStart(), i2cStop(), LSM6DSL_ACC_ODR_PD, LSM6DSL_AD_CTRL1_XL, LSM6DSL_GYRO_ODR_PD, LSM6DSL_READY, LSM6DSL_STOP, lsm6dslI2CWriteRegister, osalDbgAssert, and osalDbgCheck.
|
static |
|
static |
|
static |