From e3921b4d9d9a580e9123a904b49776445cefe617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Poli=C5=A1ensk=C3=BD?= Date: Sat, 16 Mar 2019 02:12:32 +0100 Subject: [PATCH] bug fix: temp. sensor sensitivity is 16 LSB/C. Which means we want to do bit shift by 4 not 8 to divide by 16. --- src/SparkFunLSM9DS1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SparkFunLSM9DS1.cpp b/src/SparkFunLSM9DS1.cpp index 6c868a7..949afbd 100644 --- a/src/SparkFunLSM9DS1.cpp +++ b/src/SparkFunLSM9DS1.cpp @@ -573,7 +573,7 @@ void LSM9DS1::readTemp() if ( xgReadBytes(OUT_TEMP_L, temp, 2) == 2 ) // Read 2 bytes, beginning at OUT_TEMP_L { int16_t offset = 25; // Per datasheet sensor outputs 0 typically @ 25 degrees centigrade - temperature = offset + ((((int16_t)temp[1] << 8) | temp[0]) >> 8) ; + temperature = offset + ( (((int16_t)temp[1] << 8) | (int16_t)temp[0]) >> 4 ); } }