git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@16327 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Rocco Marco Guglielmi 2023-07-10 15:16:05 +00:00
parent 970a5adbf6
commit 518c18aef5
9 changed files with 134 additions and 106 deletions

View File

@ -360,19 +360,22 @@ static msg_t acc_set_full_scale(ADXL355Driver *devp, adxl355_acc_fs_t fs) {
/* Computing new fullscale value.*/
if(fs == ADXL355_ACC_FS_2G) {
newfs = ADXL355_ACC_2G;
msg = MSG_OK;
}
else if(fs == ADXL355_ACC_FS_4G) {
newfs = ADXL355_ACC_4G;
msg = MSG_OK;
}
else if(fs == ADXL355_ACC_FS_8G) {
newfs = ADXL355_ACC_8G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->accfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;

View File

@ -344,16 +344,18 @@ static msg_t acc_set_full_scale(LIS302DLDriver *devp, lis302dl_acc_fs_t fs) {
/* Computing new fullscale value.*/
if(fs == LIS302DL_ACC_FS_2G) {
newfs = LIS302DL_ACC_2G;
msg = MSG_OK;
}
else if(fs == LIS302DL_ACC_FS_8G) {
newfs = LIS302DL_ACC_8G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->accfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;

View File

@ -358,25 +358,30 @@ static msg_t acc_set_full_scale(LIS3DSHDriver *devp, lis3dsh_acc_fs_t fs) {
/* Computing new fullscale value.*/
if(fs == LIS3DSH_ACC_FS_2G) {
newfs = LIS3DSH_ACC_2G;
msg = MSG_OK;
}
else if(fs == LIS3DSH_ACC_FS_4G) {
newfs = LIS3DSH_ACC_4G;
msg = MSG_OK;
}
else if(fs == LIS3DSH_ACC_FS_6G) {
newfs = LIS3DSH_ACC_6G;
msg = MSG_OK;
}
else if(fs == LIS3DSH_ACC_FS_8G) {
newfs = LIS3DSH_ACC_8G;
msg = MSG_OK;
}
else if(fs == LIS3DSH_ACC_FS_16G) {
newfs = LIS3DSH_ACC_16G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->accfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;

View File

@ -357,22 +357,26 @@ static msg_t comp_set_full_scale(LIS3MDLDriver *devp, lis3mdl_comp_fs_t fs) {
/* Computing new fullscale value.*/
if(fs == LIS3MDL_COMP_FS_4GA) {
newfs = LIS3MDL_COMP_4GA;
msg = MSG_OK;
}
else if(fs == LIS3MDL_COMP_FS_8GA) {
newfs = LIS3MDL_COMP_8GA;
msg = MSG_OK;
}
else if(fs == LIS3MDL_COMP_FS_12GA) {
newfs = LIS3MDL_COMP_12GA;
msg = MSG_OK;
}
else if(fs == LIS3MDL_COMP_FS_16GA) {
newfs = LIS3MDL_COMP_16GA;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->compfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->compfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->compfullscale;
devp->compfullscale = newfs;
@ -390,32 +394,32 @@ static msg_t comp_set_full_scale(LIS3MDLDriver *devp, lis3mdl_comp_fs_t fs) {
i2cReleaseBus(devp->config->i2cp);
#endif /* LIS3MDL_SHARED_I2C */
if(msg != MSG_OK)
return msg;
buff[1] &= ~(LIS3MDL_CTRL_REG2_FS_MASK);
buff[1] |= fs;
buff[0] = LIS3MDL_AD_CTRL_REG2;
if(msg == MSG_OK) {
buff[1] &= ~(LIS3MDL_CTRL_REG2_FS_MASK);
buff[1] |= fs;
buff[0] = LIS3MDL_AD_CTRL_REG2;
#if LIS3MDL_SHARED_I2C
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
#endif /* LIS3MDL_SHARED_I2C */
msg = lis3mdlI2CWriteRegister(devp->config->i2cp,
devp->config->slaveaddress,
buff, 1);
msg = lis3mdlI2CWriteRegister(devp->config->i2cp,
devp->config->slaveaddress,
buff, 1);
#if LIS3MDL_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
i2cReleaseBus(devp->config->i2cp);
#endif /* LIS3MDL_SHARED_I2C */
}
if(msg == MSG_OK) {
if(msg != MSG_OK)
return msg;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LIS3MDL_COMP_NUMBER_OF_AXES; i++) {
devp->compsensitivity[i] *= scale;
devp->compbias[i] *= scale;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LIS3MDL_COMP_NUMBER_OF_AXES; i++) {
devp->compsensitivity[i] *= scale;
devp->compbias[i] *= scale;
}
}
}
return msg;

View File

@ -368,22 +368,26 @@ static msg_t acc_set_full_scale(LSM303AGRDriver *devp,
/* Computing new fullscale value.*/
if(fs == LSM303AGR_ACC_FS_2G) {
newfs = LSM303AGR_ACC_2G;
msg = MSG_OK;
}
else if(fs == LSM303AGR_ACC_FS_4G) {
newfs = LSM303AGR_ACC_4G;
msg = MSG_OK;
}
else if(fs == LSM303AGR_ACC_FS_8G) {
newfs = LSM303AGR_ACC_8G;
msg = MSG_OK;
}
else if(fs == LSM303AGR_ACC_FS_16G) {
newfs = LSM303AGR_ACC_16G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->compfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;
@ -401,35 +405,34 @@ static msg_t acc_set_full_scale(LSM303AGRDriver *devp,
&buff[1], 1);
#if LSM303AGR_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM303AGR_SHARED_I2C */
if(msg != MSG_OK)
return msg;
if(msg == MSG_OK) {
buff[1] &= ~(LSM303AGR_CTRL_REG4_A_FS_MASK);
buff[1] |= fs;
buff[0] = LSM303AGR_AD_CTRL_REG4_A;
buff[1] &= ~(LSM303AGR_CTRL_REG4_A_FS_MASK);
buff[1] |= fs;
buff[0] = LSM303AGR_AD_CTRL_REG4_A;
#if LSM303AGR_SHARED_I2C
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
#endif /* LSM303AGR_SHARED_I2C */
msg = lsm303agrI2CWriteRegister(devp->config->i2cp,
LSM303AGR_SAD_ACC, buff, 1);
msg = lsm303agrI2CWriteRegister(devp->config->i2cp,
LSM303AGR_SAD_ACC, buff, 1);
#if LSM303AGR_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM303AGR_SHARED_I2C */
}
if(msg == MSG_OK) {
if(msg != MSG_OK)
return msg;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM303AGR_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM303AGR_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
}
}
}
return msg;

View File

@ -360,22 +360,26 @@ static msg_t acc_set_full_scale(LSM303DLHCDriver *devp,
/* Computing new fullscale value.*/
if(fs == LSM303DLHC_ACC_FS_2G) {
newfs = LSM303DLHC_ACC_2G;
msg = MSG_OK;
}
else if(fs == LSM303DLHC_ACC_FS_4G) {
newfs = LSM303DLHC_ACC_4G;
msg = MSG_OK;
}
else if(fs == LSM303DLHC_ACC_FS_8G) {
newfs = LSM303DLHC_ACC_8G;
msg = MSG_OK;
}
else if(fs == LSM303DLHC_ACC_FS_16G) {
newfs = LSM303DLHC_ACC_16G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->accfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;
@ -396,8 +400,7 @@ static msg_t acc_set_full_scale(LSM303DLHCDriver *devp,
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM303DLHC_SHARED_I2C */
if(msg != MSG_OK)
return msg;
if(msg == MSG_OK) {
buff[1] &= ~(LSM303DLHC_CTRL_REG4_A_FS_MASK);
buff[1] |= fs;
@ -414,14 +417,14 @@ static msg_t acc_set_full_scale(LSM303DLHCDriver *devp,
#if LSM303DLHC_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM303DLHC_SHARED_I2C */
}
if(msg == MSG_OK) {
if(msg != MSG_OK)
return msg;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM303DLHC_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM303DLHC_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
}
}
}
return msg;

View File

@ -351,22 +351,26 @@ static msg_t acc_set_full_scale(LSM6DS0Driver *devp, lsm6ds0_acc_fs_t fs) {
/* Computing new fullscale value.*/
if(fs == LSM6DS0_ACC_FS_2G) {
newfs = LSM6DS0_ACC_2G;
msg = MSG_OK;
}
else if(fs == LSM6DS0_ACC_FS_4G) {
newfs = LSM6DS0_ACC_4G;
msg = MSG_OK;
}
else if(fs == LSM6DS0_ACC_FS_8G) {
newfs = LSM6DS0_ACC_8G;
msg = MSG_OK;
}
else if(fs == LSM6DS0_ACC_FS_16G) {
newfs = LSM6DS0_ACC_16G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
if((msg == MSG_OK) &&
(newfs != devp->accfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;
@ -386,32 +390,31 @@ static msg_t acc_set_full_scale(LSM6DS0Driver *devp, lsm6ds0_acc_fs_t fs) {
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM6DS0_SHARED_I2C */
if(msg != MSG_OK)
return msg;
if(msg != MSG_OK) {
buff[1] &= ~(LSM6DS0_CTRL_REG6_XL_FS_MASK);
buff[1] |= fs;
buff[0] = LSM6DS0_AD_CTRL_REG6_XL;
buff[1] &= ~(LSM6DS0_CTRL_REG6_XL_FS_MASK);
buff[1] |= fs;
buff[0] = LSM6DS0_AD_CTRL_REG6_XL;
#if LSM6DS0_SHARED_I2C
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
#endif /* LSM6DS0_SHARED_I2C */
msg = lsm6ds0I2CWriteRegister(devp->config->i2cp,
devp->config->slaveaddress, buff, 1);
msg = lsm6ds0I2CWriteRegister(devp->config->i2cp,
devp->config->slaveaddress, buff, 1);
#if LSM6DS0_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM6DS0_SHARED_I2C */
}
if(msg != MSG_OK) {
if(msg != MSG_OK)
return msg;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM6DS0_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM6DS0_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
}
}
}
return msg;

View File

@ -351,67 +351,70 @@ static msg_t acc_set_full_scale(LSM6DSLDriver *devp, lsm6dsl_acc_fs_t fs) {
/* Computing new fullscale value.*/
if(fs == LSM6DSL_ACC_FS_2G) {
newfs = LSM6DSL_ACC_2G;
msg = MSG_OK;
}
else if(fs == LSM6DSL_ACC_FS_4G) {
newfs = LSM6DSL_ACC_4G;
msg = MSG_OK;
}
else if(fs == LSM6DSL_ACC_FS_8G) {
newfs = LSM6DSL_ACC_8G;
msg = MSG_OK;
}
else if(fs == LSM6DSL_ACC_FS_16G) {
newfs = LSM6DSL_ACC_16G;
msg = MSG_OK;
}
else {
msg = MSG_RESET;
return msg;
}
if(newfs != devp->accfullscale) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;
if((msg == MSG_OK) &&
(newfs != devp->accfullscale)) {
/* Computing scale value.*/
scale = newfs / devp->accfullscale;
devp->accfullscale = newfs;
#if LSM6DSL_SHARED_I2C
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp,
devp->config->i2ccfg);
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp,
devp->config->i2ccfg);
#endif /* LSM6DSL_SHARED_I2C */
/* Updating register.*/
msg = lsm6dslI2CReadRegister(devp->config->i2cp,
devp->config->slaveaddress,
LSM6DSL_AD_CTRL1_XL, &buff[1], 1);
/* Updating register.*/
msg = lsm6dslI2CReadRegister(devp->config->i2cp,
devp->config->slaveaddress,
LSM6DSL_AD_CTRL1_XL, &buff[1], 1);
#if LSM6DSL_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM6DSL_SHARED_I2C */
if(msg != MSG_OK)
return msg;
if(msg == MSG_OK) {
buff[1] &= ~(LSMDSL_CTRL1_XL_FS_MASK);
buff[1] |= fs;
buff[0] = LSM6DSL_AD_CTRL1_XL;
buff[1] &= ~(LSMDSL_CTRL1_XL_FS_MASK);
buff[1] |= fs;
buff[0] = LSM6DSL_AD_CTRL1_XL;
#if LSM6DSL_SHARED_I2C
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
i2cAcquireBus(devp->config->i2cp);
i2cStart(devp->config->i2cp, devp->config->i2ccfg);
#endif /* LSM6DSL_SHARED_I2C */
msg = lsm6dslI2CWriteRegister(devp->config->i2cp,
devp->config->slaveaddress, buff, 1);
msg = lsm6dslI2CWriteRegister(devp->config->i2cp,
devp->config->slaveaddress, buff, 1);
#if LSM6DSL_SHARED_I2C
i2cReleaseBus(devp->config->i2cp);
i2cReleaseBus(devp->config->i2cp);
#endif /* LSM6DSL_SHARED_I2C */
}
if(msg == MSG_OK) {
if(msg != MSG_OK)
return msg;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM6DSL_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
/* Scaling sensitivity and bias. Re-calibration is suggested anyway.*/
for(i = 0; i < LSM6DSL_ACC_NUMBER_OF_AXES; i++) {
devp->accsensitivity[i] *= scale;
devp->accbias[i] *= scale;
}
}
}
return msg;

View File

@ -116,6 +116,8 @@
instead of a simple size.
- NEW: RT and NIL upgraded to support the enhanced OSLIB.
- NEW: Memory areas/pointers checker functions added to OSLIB.
- FIX: Fixed uninitialized return message in EX subsystem (bug #1267)
(backported to 21.11.4).
- FIX: Fixed unnecessary code in SNOR device drivers (bug #1265)
(backported to 20.3.5)(backported to 21.11.4).
- FIX: Fixed RP2040 HAL GPIO failed to compile (bug #1264)