From 719c2bbbb89c0121bbd2b62f9aeb98327e583d2b Mon Sep 17 00:00:00 2001 From: Michael Turner Date: Sun, 2 Nov 2025 14:10:02 -0800 Subject: Correct the temperature reading to preserve the sign bits --- examples/rp/src/bin/pio_onewire.rs | 2 +- examples/rp/src/bin/pio_onewire_parasite.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'examples/rp') diff --git a/examples/rp/src/bin/pio_onewire.rs b/examples/rp/src/bin/pio_onewire.rs index 102f13c45..6432edb8a 100644 --- a/examples/rp/src/bin/pio_onewire.rs +++ b/examples/rp/src/bin/pio_onewire.rs @@ -61,7 +61,7 @@ async fn main(_spawner: Spawner) { let mut data = [0; 9]; onewire.read_bytes(&mut data).await; if crc8(&data) == 0 { - let temp = ((data[1] as u32) << 8 | data[0] as u32) as f32 / 16.; + let temp = ((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.; info!("Read device {:x}: {} deg C", device, temp); } else { warn!("Reading device {:x} failed", device); diff --git a/examples/rp/src/bin/pio_onewire_parasite.rs b/examples/rp/src/bin/pio_onewire_parasite.rs index fd076dee0..78fb94b18 100644 --- a/examples/rp/src/bin/pio_onewire_parasite.rs +++ b/examples/rp/src/bin/pio_onewire_parasite.rs @@ -63,7 +63,7 @@ async fn main(_spawner: Spawner) { let mut data = [0; 9]; onewire.read_bytes(&mut data).await; if crc8(&data) == 0 { - let temp = ((data[1] as u32) << 8 | data[0] as u32) as f32 / 16.; + let temp = ((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.; info!("Read device {:x}: {} deg C", device, temp); } else { warn!("Reading device {:x} failed. {:02x}", device, data); -- cgit