From 0ad88a3ede4c6ffa2f5ee57e0d83ee3d747f4ac2 Mon Sep 17 00:00:00 2001 From: Arif Darmawan Date: Wed, 14 Nov 2018 09:50:55 +0700 Subject: [PATCH] Fix negative value on 32 bit architecture --- LM75.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LM75.cpp b/LM75.cpp index f98564f..f3f62c7 100644 --- a/LM75.cpp +++ b/LM75.cpp @@ -27,16 +27,16 @@ LM75::LM75 (byte addr) { address = addr; } -word LM75::float2regdata (float temp) +uint16_t LM75::float2regdata (float temp) { // First multiply by 8 and coerce to integer to get +/- whole numbers // Then coerce to word and bitshift 5 to fill out MSB - return (word)((int)(temp * 8) << 5); + return (uint16_t)((int16_t)(temp * 8) << 5); } float LM75::regdata2float (word regdata) { - return ((float)(int)regdata / 32) / 8; + return ((float)(int16_t)regdata / 32) / 8; } word LM75::_register16 (byte reg) {