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"); println!("Test temp enable/disable");
mpu.set_temp_enabled(false)?; mpu.set_temp_enabled(false)?;
assert_eq!(mpu.get_temp_enabled()?, false); assert_eq!(mpu.get_temp_enabled()?, false);
assert_eq!(mpu.get_temp()?, 36.53);
mpu.set_temp_enabled(true)?; mpu.set_temp_enabled(true)?;
assert_eq!(mpu.get_temp_enabled()?, true); assert_eq!(mpu.get_temp_enabled()?, true);
assert_ne!(mpu.get_temp()?, 36.53);
// reset // reset
println!("Test 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_accel_range()?, range::AccelRange::G2);
assert_eq!(mpu.get_gyro_range()?, range::GyroRange::D250); assert_eq!(mpu.get_gyro_range()?, range::GyroRange::D250);
assert_eq!(mpu.get_sleep_enabled()?, true); assert_eq!(mpu.get_sleep_enabled()?, true);
assert_eq!(mpu.get_temp_enabled()?, false); assert_eq!(mpu.get_temp_enabled()?, true);
println!("Test successful"); println!("Test successful");
Ok(()) Ok(())

View file

@ -203,13 +203,17 @@ where
} }
/// enable, disable temperature measurement of sensor /// 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>> { 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 /// 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>> { 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 /// set accel x self test