1
Fork 0

fix temperature sensor enable/disable

This commit is contained in:
juliangaal 2021-02-19 08:50:54 +01:00
parent f021c88a08
commit 0ab57cadf4
2 changed files with 9 additions and 3 deletions

View file

@ -47,8 +47,10 @@ fn main() -> Result<(), Mpu6050Error<LinuxI2CError>> {
println!("Test temp enable/disable");
mpu.set_temp_enabled(false)?;
assert_eq!(mpu.get_temp_enabled()?, false);
assert_eq!(mpu.get_temp()?, 36.53);
mpu.set_temp_enabled(true)?;
assert_eq!(mpu.get_temp_enabled()?, true);
assert_ne!(mpu.get_temp()?, 36.53);
// reset
println!("Test reset");
@ -57,7 +59,7 @@ fn main() -> Result<(), Mpu6050Error<LinuxI2CError>> {
assert_eq!(mpu.get_accel_range()?, range::AccelRange::G2);
assert_eq!(mpu.get_gyro_range()?, range::GyroRange::D250);
assert_eq!(mpu.get_sleep_enabled()?, true);
assert_eq!(mpu.get_temp_enabled()?, false);
assert_eq!(mpu.get_temp_enabled()?, true);
println!("Test successful");
Ok(())

View file

@ -203,13 +203,17 @@ where
}
/// enable, disable temperature measurement of sensor
/// TEMP_DIS actually saves "disabled status"
/// 1 is disabled! -> enable=true : bit=!enable
pub fn set_temp_enabled(&mut self, enable: bool) -> Result<(), Mpu6050Error<E>> {
Ok(self.write_bit(PWR_MGMT_1::ADDR, PWR_MGMT_1::TEMP_DIS, enable)?)
Ok(self.write_bit(PWR_MGMT_1::ADDR, PWR_MGMT_1::TEMP_DIS, !enable)?)
}
/// get temperature sensor status
/// TEMP_DIS actually saves "disabled status"
/// 1 is disabled! -> 1 == 0 : false, 0 == 0 : true
pub fn get_temp_enabled(&mut self) -> Result<bool, Mpu6050Error<E>> {
Ok(self.read_bit(PWR_MGMT_1::ADDR, PWR_MGMT_1::TEMP_DIS)? != 0)
Ok(self.read_bit(PWR_MGMT_1::ADDR, PWR_MGMT_1::TEMP_DIS)? == 0)
}
/// set accel x self test