Updated LSM6DSL demos in testex demos to be close to the pattern used in testhal demos. Minor changes to field names in LSM6DSL.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15440 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Rocco Marco Guglielmi 2022-02-07 19:00:30 +00:00
parent e9918a4413
commit 4ddc79903f
4 changed files with 60 additions and 62 deletions

View File

@ -885,26 +885,26 @@ void lsm6dslStart(LSM6DSLDriver *devp, const LSM6DSLConfig *config) {
cr[0] = LSM6DSL_AD_CTRL1_XL; cr[0] = LSM6DSL_AD_CTRL1_XL;
/* Control register 1 configuration block.*/ /* Control register 1 configuration block.*/
{ {
cr[1] = devp->config->accoutdatarate | cr[1] = devp->config->accodr |
devp->config->accfullscale; devp->config->accfullscale;
} }
/* Control register 2 configuration block.*/ /* Control register 2 configuration block.*/
{ {
cr[2] = devp->config->gyrooutdatarate | cr[2] = devp->config->gyroodr |
devp->config->gyrofullscale; devp->config->gyrofullscale;
} }
/* Control register 3 configuration block.*/ /* Control register 3 configuration block.*/
{ {
cr[3] = LSMDSL_CTRL3_C_IF_INC; cr[3] = LSMDSL_CTRL3_C_IF_INC;
#if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__) #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
cr[3] |= devp->config->endianness | devp->config->blockdataupdate; cr[3] |= devp->config->endianness | devp->config->bdu;
#endif #endif
} }
/* Control register 4 configuration block.*/ /* Control register 4 configuration block.*/
{ {
cr[4] = 0; cr[4] = 0;
#if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__) #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
if(devp->config->gyrolowpassfilter != LSM6DSL_GYRO_LPF_DISABLED) { if(devp->config->gyrolpfilter != LSM6DSL_GYRO_LPF_DISABLED) {
cr[4] |= LSMDSL_CTRL4_C_LPF1_SEL_G; cr[4] |= LSMDSL_CTRL4_C_LPF1_SEL_G;
} }
else { else {
@ -924,8 +924,8 @@ void lsm6dslStart(LSM6DSLDriver *devp, const LSM6DSLConfig *config) {
#endif #endif
#if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__) #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
if(devp->config->gyrolowpassfilter != LSM6DSL_GYRO_LPF_DISABLED) { if(devp->config->gyrolpfilter != LSM6DSL_GYRO_LPF_DISABLED) {
cr[6] |= devp->config->gyrolowpassfilter; cr[6] |= devp->config->gyrolpfilter;
} }
else { else {
/* Nothing to do. */ /* Nothing to do. */

View File

@ -43,7 +43,7 @@
/** /**
* @brief LSM6DSL driver version string. * @brief LSM6DSL driver version string.
*/ */
#define EX_LSM6DSL_VERSION "1.0.1" #define EX_LSM6DSL_VERSION "1.0.2"
/** /**
* @brief LSM6DSL driver version major number. * @brief LSM6DSL driver version major number.
@ -58,7 +58,7 @@
/** /**
* @brief LSM6DSL driver version patch number. * @brief LSM6DSL driver version patch number.
*/ */
#define EX_LSM6DSL_PATCH 1 #define EX_LSM6DSL_PATCH 2
/** @} */ /** @} */
/** /**
@ -492,17 +492,17 @@ typedef enum {
*/ */
typedef enum { typedef enum {
LSM6DSL_ACC_ODR_PD = 0x00, /**< Power down */ LSM6DSL_ACC_ODR_PD = 0x00, /**< Power down */
LSM6DSL_ACC_ODR_1P6Hz = 0xB0, /**< ODR 1.6 Hz (Low Power only) */ LSM6DSL_ACC_ODR_1P6HZ = 0xB0, /**< ODR 1.6 Hz (Low Power only) */
LSM6DSL_ACC_ODR_12P5Hz = 0x10, /**< ODR 12.5 Hz */ LSM6DSL_ACC_ODR_12P5HZ = 0x10, /**< ODR 12.5 Hz */
LSM6DSL_ACC_ODR_26Hz = 0x20, /**< ODR 26 Hz */ LSM6DSL_ACC_ODR_26HZ = 0x20, /**< ODR 26 Hz */
LSM6DSL_ACC_ODR_52Hz = 0x30, /**< ODR 52 Hz */ LSM6DSL_ACC_ODR_52HZ = 0x30, /**< ODR 52 Hz */
LSM6DSL_ACC_ODR_104Hz = 0x40, /**< ODR 104 Hz */ LSM6DSL_ACC_ODR_104HZ = 0x40, /**< ODR 104 Hz */
LSM6DSL_ACC_ODR_208Hz = 0x50, /**< ODR 208 Hz */ LSM6DSL_ACC_ODR_208HZ = 0x50, /**< ODR 208 Hz */
LSM6DSL_ACC_ODR_416Hz = 0x60, /**< ODR 416 Hz */ LSM6DSL_ACC_ODR_416HZ = 0x60, /**< ODR 416 Hz */
LSM6DSL_ACC_ODR_833Hz = 0x70, /**< ODR 833 Hz */ LSM6DSL_ACC_ODR_833HZ = 0x70, /**< ODR 833 Hz */
LSM6DSL_ACC_ODR_1P66Hz = 0x80, /**< ODR 1.66 kHz */ LSM6DSL_ACC_ODR_1P66HZ = 0x80, /**< ODR 1.66 kHz */
LSM6DSL_ACC_ODR_3P33Hz = 0x90, /**< ODR 3.33 kHz */ LSM6DSL_ACC_ODR_3P33HZ = 0x90, /**< ODR 3.33 kHz */
LSM6DSL_ACC_ODR_6P66Hz = 0xA0 /**< ODR 6.66 kHz */ LSM6DSL_ACC_ODR_6P66HZ = 0xA0 /**< ODR 6.66 kHz */
} lsm6dsl_acc_odr_t; } lsm6dsl_acc_odr_t;
/** /**
@ -529,16 +529,16 @@ typedef enum {
*/ */
typedef enum { typedef enum {
LSM6DSL_GYRO_ODR_PD = 0x00, /**< Power down */ LSM6DSL_GYRO_ODR_PD = 0x00, /**< Power down */
LSM6DSL_GYRO_ODR_12P5Hz = 0x10, /**< ODR 12.5 Hz */ LSM6DSL_GYRO_ODR_12P5HZ = 0x10, /**< ODR 12.5 HZ */
LSM6DSL_GYRO_ODR_26Hz = 0x20, /**< ODR 26 Hz */ LSM6DSL_GYRO_ODR_26HZ = 0x20, /**< ODR 26 Hz */
LSM6DSL_GYRO_ODR_52Hz = 0x30, /**< ODR 52 Hz */ LSM6DSL_GYRO_ODR_52HZ = 0x30, /**< ODR 52 Hz */
LSM6DSL_GYRO_ODR_104Hz = 0x40, /**< ODR 104 Hz */ LSM6DSL_GYRO_ODR_104HZ = 0x40, /**< ODR 104 Hz */
LSM6DSL_GYRO_ODR_208Hz = 0x50, /**< ODR 208 Hz */ LSM6DSL_GYRO_ODR_208HZ = 0x50, /**< ODR 208 Hz */
LSM6DSL_GYRO_ODR_416Hz = 0x60, /**< ODR 416 Hz */ LSM6DSL_GYRO_ODR_416HZ = 0x60, /**< ODR 416 Hz */
LSM6DSL_GYRO_ODR_833Hz = 0x70, /**< ODR 833 Hz */ LSM6DSL_GYRO_ODR_833HZ = 0x70, /**< ODR 833 Hz */
LSM6DSL_GYRO_ODR_1P66Hz = 0x80, /**< ODR 1.66 kHz */ LSM6DSL_GYRO_ODR_1P66KHZ = 0x80, /**< ODR 1.66 kHz */
LSM6DSL_GYRO_ODR_3P33Hz = 0x90, /**< ODR 3.33 kHz */ LSM6DSL_GYRO_ODR_3P33KHZ = 0x90, /**< ODR 3.33 kHz */
LSM6DSL_GYRO_ODR_6P66Hz = 0xA0 /**< ODR 6.66 kHz */ LSM6DSL_GYRO_ODR_6P66KHZ = 0xA0 /**< ODR 6.66 kHz */
} lsm6dsl_gyro_odr_t; } lsm6dsl_gyro_odr_t;
/** /**
@ -630,7 +630,7 @@ typedef struct {
/** /**
* @brief LSM6DSL accelerometer subsystem output data rate. * @brief LSM6DSL accelerometer subsystem output data rate.
*/ */
lsm6dsl_acc_odr_t accoutdatarate; lsm6dsl_acc_odr_t accodr;
#if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__) #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
/** /**
* @brief LSM6DSL accelerometer subsystem low power mode. * @brief LSM6DSL accelerometer subsystem low power mode.
@ -652,7 +652,7 @@ typedef struct {
/** /**
* @brief LSM6DSL gyroscope subsystem output data rate. * @brief LSM6DSL gyroscope subsystem output data rate.
*/ */
lsm6dsl_gyro_odr_t gyrooutdatarate; lsm6dsl_gyro_odr_t gyroodr;
#if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__) #if LSM6DSL_USE_ADVANCED || defined(__DOXYGEN__)
/** /**
* @brief LSM6DSL gyroscope subsystem low mode configuration. * @brief LSM6DSL gyroscope subsystem low mode configuration.
@ -661,11 +661,11 @@ typedef struct {
/** /**
* @brief LSM6DSL gyroscope subsystem low pass filter configuration. * @brief LSM6DSL gyroscope subsystem low pass filter configuration.
*/ */
lsm6dsl_gyro_lpf_t gyrolowpassfilter; lsm6dsl_gyro_lpf_t gyrolpfilter;
/** /**
* @brief LSM6DSL block data update * @brief LSM6DSL block data update
*/ */
lsm6dsl_bdu_t blockdataupdate; lsm6dsl_bdu_t bdu;
/** /**
* @brief LSM6DSL endianness * @brief LSM6DSL endianness
*/ */

View File

@ -102,17 +102,17 @@ static const LSM303AGRConfig lsm303agrcfg = {
static LSM6DSLDriver LSM6DSLD1; static LSM6DSLDriver LSM6DSLD1;
static const LSM6DSLConfig lsm6dslcfg = { static const LSM6DSLConfig lsm6dslcfg = {
&I2CD1, .i2cp = &I2CD1,
&i2ccfg, .i2ccfg = &i2ccfg,
LSM6DSL_SAD_VCC, .slaveaddress = LSM6DSL_SAD_VCC,
NULL, .accsensitivity = NULL,
NULL, .accbias = NULL,
LSM6DSL_ACC_FS_2G, .accfullscale = LSM6DSL_ACC_FS_2G,
LSM6DSL_ACC_ODR_52Hz, .accodr = LSM6DSL_ACC_ODR_52HZ,
NULL, .gyrosensitivity = NULL,
NULL, .gyrobias = NULL,
LSM6DSL_GYRO_FS_250DPS, .gyrofullscale = LSM6DSL_GYRO_FS_250DPS,
LSM6DSL_GYRO_ODR_104Hz .gyroodr = LSM6DSL_GYRO_ODR_104HZ,
}; };
/*===========================================================================*/ /*===========================================================================*/

View File

@ -43,27 +43,25 @@ static const I2CConfig i2ccfg = {
}; };
static const LSM6DSLConfig lsm6dslcfg = { static const LSM6DSLConfig lsm6dslcfg = {
&I2CD1, .i2cp = &I2CD1,
&i2ccfg, .i2ccfg = &i2ccfg,
LSM6DSL_SAD_VCC, .slaveaddress = LSM6DSL_SAD_VCC,
NULL, .accsensitivity = NULL,
NULL, .accbias = NULL,
LSM6DSL_ACC_FS_2G, .accfullscale = LSM6DSL_ACC_FS_2G,
LSM6DSL_ACC_ODR_52Hz, .accodr = LSM6DSL_ACC_ODR_52HZ,
#if LSM6DSL_USE_ADVANCED #if LSM6DSL_USE_ADVANCED
LSM6DSL_ACC_LP_ENABLED, .acclpmode = LSM6DSL_ACC_LP_ENABLED,
#endif #endif
NULL, .gyrosensitivity = NULL,
NULL, .gyrobias = NULL,
LSM6DSL_GYRO_FS_250DPS, .gyrofullscale = LSM6DSL_GYRO_FS_250DPS,
LSM6DSL_GYRO_ODR_104Hz, .gyroodr = LSM6DSL_GYRO_ODR_104HZ,
#if LSM6DSL_USE_ADVANCED #if LSM6DSL_USE_ADVANCED
LSM6DSL_GYRO_LP_ENABLED, .gyrolpmode = LSM6DSL_GYRO_LP_ENABLED,
LSM6DSL_GYRO_LPF_FTYPE1, .gyrolpfilter = LSM6DSL_GYRO_LPF_FTYPE1,
#endif .bdu = LSM6DSL_BDU_BLOCKED,
#if LSM6DSL_USE_ADVANCED .endianness = LSM6DSL_END_LITTLE
LSM6DSL_BDU_BLOCKED,
LSM6DSL_END_LITTLE
#endif #endif
}; };