Browse Source

bosch/bmi055: fix accel temperature reading

- single register output is in 2's complement
sbg
Daniel Agar 5 years ago committed by GitHub
parent
commit
eb46a42400
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/drivers/imu/bosch/bmi055/BMI055_Accelerometer.cpp

3
src/drivers/imu/bosch/bmi055/BMI055_Accelerometer.cpp

@ -455,7 +455,8 @@ void BMI055_Accelerometer::FIFOReset() @@ -455,7 +455,8 @@ void BMI055_Accelerometer::FIFOReset()
void BMI055_Accelerometer::UpdateTemperature()
{
// The slope of the temperature sensor is 0.5K/LSB, its center temperature is 23°C [(ACC 0x08) temp = 0x00].
float temperature = RegisterRead(Register::ACCD_TEMP) * 0.5f + 23.f;
// The register contains the current chip temperature represented in two’s complement format.
float temperature = static_cast<int8_t>(RegisterRead(Register::ACCD_TEMP)) * 0.5f + 23.f;
if (PX4_ISFINITE(temperature)) {
_px4_accel.set_temperature(temperature);

Loading…
Cancel
Save