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; }