From 7a973773bfb948ebc5a3d8bbbea7035896795e65 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 12 Apr 2026 18:51:11 +0530 Subject: Add error correction for temp + cleanup --- src/temperature.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/temperature.c') diff --git a/src/temperature.c b/src/temperature.c index b804fc9..72e4875 100644 --- a/src/temperature.c +++ b/src/temperature.c @@ -37,13 +37,17 @@ uint16_t spi_read16(void) { float temperature_read(void) { THERMO_PORT &= ~(1 << THERMO_CS); - uint16_t v = spi_read16(); + uint16_t out = spi_read16(); THERMO_PORT |= (1 << THERMO_CS); - // invalid temp - if (v & 0x4) - return 999.9; + // thermocouple open (invalid read) D2 bit + if (out & 0b100) + return 0.0; - v >>= 3; - return v * 0.25; + out >>= 3; // Skip D0,D1,D2 + + float temperature = out * THERMO_RESOLUTION; + if (temperature > 100) + temperature *= 1.05; + return temperature; } -- cgit v1.3.1