diff --git a/capsules/extra/src/bme280.rs b/capsules/extra/src/bme280.rs index 1df4a66f81..ffacf8e616 100644 --- a/capsules/extra/src/bme280.rs +++ b/capsules/extra/src/bme280.rs @@ -272,10 +272,10 @@ impl<'a, I: I2CDevice> I2CClient for Bme280<'a, I> { let calib = self.calibration.get(); // note: per datasheet, measurement is 20-bit two's complement - let adc_temperature: i32 = (((buffer[0] as usize) << 12 + let adc_temperature: i32 = ((((buffer[0] as usize) << 12 | (buffer[1] as usize) << 4 - | (((buffer[2] as usize) >> 4) & 0x0F) << 12) - as i32) + | (((buffer[2] as usize) >> 4) & 0x0F)) + << 12) as i32) >> 12; // ensure sign extension if adc_temperature == 0 { diff --git a/capsules/extra/src/bmp280.rs b/capsules/extra/src/bmp280.rs index 0a7939b110..303524fd61 100644 --- a/capsules/extra/src/bmp280.rs +++ b/capsules/extra/src/bmp280.rs @@ -77,8 +77,7 @@ impl CalibrationData { } } - fn temp_from_raw(&self, raw_temp: i32) -> i32 { - let temp = raw_temp as i32; // guaranteed to succeed because raw temp has only 20 significant bits maximum. + fn temp_from_raw(&self, temp: i32) -> i32 { let dig_t1 = self.dig_t1 as i32; // same, 16-bits let dig_t2 = self.dig_t2 as i32; // same, 16-bits let dig_t3 = self.dig_t3 as i32; // same, 16-bits