mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-02 03:49:12 +08:00
fix bmi088: set correct accel scale
This affected the clipping limit, which was set too low
This commit is contained in:
@@ -278,22 +278,22 @@ void BMI088_Accelerometer::ConfigureAccel()
|
|||||||
switch (ACC_RANGE) {
|
switch (ACC_RANGE) {
|
||||||
case acc_range_3g:
|
case acc_range_3g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(3.f);
|
_px4_accel.set_range(3.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case acc_range_6g:
|
case acc_range_6g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(6.f);
|
_px4_accel.set_range(6.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case acc_range_12g:
|
case acc_range_12g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(12.f);
|
_px4_accel.set_range(12.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case acc_range_24g:
|
case acc_range_24g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(24.f);
|
_px4_accel.set_range(24.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,22 +206,22 @@ void BMI088_Accelerometer::ConfigureAccel()
|
|||||||
switch (ACC_RANGE) {
|
switch (ACC_RANGE) {
|
||||||
case acc_range_3g:
|
case acc_range_3g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(3.f);
|
_px4_accel.set_range(3.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case acc_range_6g:
|
case acc_range_6g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(6.f);
|
_px4_accel.set_range(6.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case acc_range_12g:
|
case acc_range_12g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(12.f);
|
_px4_accel.set_range(12.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case acc_range_24g:
|
case acc_range_24g:
|
||||||
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
_px4_accel.set_scale(CONSTANTS_ONE_G * (powf(2, ACC_RANGE + 1) * 1.5f) / 32768.f);
|
||||||
_px4_accel.set_range(24.f);
|
_px4_accel.set_range(24.f * CONSTANTS_ONE_G);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user