Skip to content

Commit 3e7fdef

Browse files
authored
Merge pull request #4826 from mikeytdisco/temp_fix
Correct the temperature reading to preserve the sign bits
2 parents 836b46f + 719c2bb commit 3e7fdef

File tree

5 files changed

+5
-5
lines changed

5 files changed

+5
-5
lines changed

examples/rp/src/bin/pio_onewire.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ async fn main(_spawner: Spawner) {
6161
let mut data = [0; 9];
6262
onewire.read_bytes(&mut data).await;
6363
if crc8(&data) == 0 {
64-
let temp = ((data[1] as u32) << 8 | data[0] as u32) as f32 / 16.;
64+
let temp = ((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.;
6565
info!("Read device {:x}: {} deg C", device, temp);
6666
} else {
6767
warn!("Reading device {:x} failed", device);

examples/rp/src/bin/pio_onewire_parasite.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ async fn main(_spawner: Spawner) {
6363
let mut data = [0; 9];
6464
onewire.read_bytes(&mut data).await;
6565
if crc8(&data) == 0 {
66-
let temp = ((data[1] as u32) << 8 | data[0] as u32) as f32 / 16.;
66+
let temp = ((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.;
6767
info!("Read device {:x}: {} deg C", device, temp);
6868
} else {
6969
warn!("Reading device {:x} failed. {:02x}", device, data);

examples/rp235x/src/bin/pio_onewire.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ async fn main(_spawner: Spawner) {
6161
let mut data = [0; 9];
6262
onewire.read_bytes(&mut data).await;
6363
if crc8(&data) == 0 {
64-
let temp = ((data[1] as u32) << 8 | data[0] as u32) as f32 / 16.;
64+
let temp = ((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.;
6565
info!("Read device {:x}: {} deg C", device, temp);
6666
} else {
6767
warn!("Reading device {:x} failed", device);

examples/rp235x/src/bin/pio_onewire_parasite.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ async fn main(_spawner: Spawner) {
6363
let mut data = [0; 9];
6464
onewire.read_bytes(&mut data).await;
6565
if crc8(&data) == 0 {
66-
let temp = ((data[1] as u32) << 8 | data[0] as u32) as f32 / 16.;
66+
let temp = ((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.;
6767
info!("Read device {:x}: {} deg C", device, temp);
6868
} else {
6969
warn!("Reading device {:x} failed. {:02x}", device, data);

examples/stm32g0/src/bin/onewire_ds18b20.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ where
267267
}
268268

269269
match Self::crc8(&data) == 0 {
270-
true => Ok(((data[1] as u16) << 8 | data[0] as u16) as f32 / 16.),
270+
true => Ok(((data[1] as i16) << 8 | data[0] as i16) as f32 / 16.),
271271
false => Err(()),
272272
}
273273
}

0 commit comments

Comments
 (0)