From 7c3849ee3516a6d9c5891930acd8d298a54a7649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Grennerat?= Date: Tue, 15 Jul 2025 01:42:39 +0200 Subject: [PATCH] Temp rounding --- main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 68985f0..ab596f1 100644 --- a/main.c +++ b/main.c @@ -84,12 +84,14 @@ int fetchClimate(int8_t* humidity, int8_t* temperature) { *humidity = (int8_t) (hum / 10); uint16_t temp = (((uint16_t) (dhtBytes[2])) << 8) | ((uint16_t) dhtBytes[3]); + int8_t tempRound = (temp % 10) >= 5 ? 1 : 0; if (temp & 0x8000) { // If high bit is 1, temperature is negative. - *temperature = - (int8_t) ((temp & 0x7FFF) / 10); + *temperature = - (int8_t) ((temp & 0x7FFF) / 10) - tempRound; }else { - *temperature = (int8_t) (temp / 10); + *temperature = (int8_t) (temp / 10) + tempRound; } + return 0; }