diff --git a/firmware/SparkFunRHT03.cpp b/firmware/SparkFunRHT03.cpp index 6b9e78a..ebd3915 100644 --- a/firmware/SparkFunRHT03.cpp +++ b/firmware/SparkFunRHT03.cpp @@ -97,7 +97,15 @@ int RHT03::update() if (checksum(dataBytes[CHECKSUM], dataBytes, 4)) { _humidity = ((uint16_t) dataBytes[HUMIDITY_H] << 8) | dataBytes[HUMIDITY_L]; + if(_humidity & 0x8000) { + _humidity -= 0x7FFF; + _humidity *= -1; + } _temperature = ((uint16_t) dataBytes[TEMP_H] << 8) | dataBytes[TEMP_L]; + if(_temperature & 0x8000) { + _temperature -= 0x7FFF; + _temperature *= -1; + } return 1; } else @@ -135,4 +143,4 @@ bool RHT03::waitForRHT(int pinState, unsigned int timeout) return false; else return true; -} \ No newline at end of file +}