From d6633d215443369cf5cdd8c3846fd08b456eaf5b Mon Sep 17 00:00:00 2001 From: Jason Fritcher Date: Sat, 31 Dec 2016 23:38:48 -0800 Subject: [PATCH] Calibration value H6 should be a signed char. See BME280 datasheet, pg 23 --- examples/I2C_ReadAllData/I2C_ReadAllData.ino | 2 +- .../LCD_PressureTemperature/LCD_PressureTemperature.ino | 2 +- src/SparkFunBME280.cpp | 2 +- src/SparkFunBME280.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/I2C_ReadAllData/I2C_ReadAllData.ino b/examples/I2C_ReadAllData/I2C_ReadAllData.ino index 791faa8..64624da 100644 --- a/examples/I2C_ReadAllData/I2C_ReadAllData.ino +++ b/examples/I2C_ReadAllData/I2C_ReadAllData.ino @@ -170,7 +170,7 @@ void setup() Serial.println(mySensor.calibration.dig_H4); Serial.print("dig_H5, int16: "); Serial.println(mySensor.calibration.dig_H5); - Serial.print("dig_H6, uint8: "); + Serial.print("dig_H6, int8: "); Serial.println(mySensor.calibration.dig_H6); Serial.println(); diff --git a/examples/SketchesWithLCD/LCD_PressureTemperature/LCD_PressureTemperature.ino b/examples/SketchesWithLCD/LCD_PressureTemperature/LCD_PressureTemperature.ino index 4f7449b..255022e 100644 --- a/examples/SketchesWithLCD/LCD_PressureTemperature/LCD_PressureTemperature.ino +++ b/examples/SketchesWithLCD/LCD_PressureTemperature/LCD_PressureTemperature.ino @@ -203,7 +203,7 @@ void setup() Serial.println(mySensor.calibration.dig_H4); Serial.print("dig_H5, int16: "); Serial.println(mySensor.calibration.dig_H5); - Serial.print("dig_H6, uint8: "); + Serial.print("dig_H6, int8: "); Serial.println(mySensor.calibration.dig_H6); Serial.println(); diff --git a/src/SparkFunBME280.cpp b/src/SparkFunBME280.cpp index dd6ebb8..429ce89 100644 --- a/src/SparkFunBME280.cpp +++ b/src/SparkFunBME280.cpp @@ -115,7 +115,7 @@ uint8_t BME280::begin() calibration.dig_H3 = ((uint8_t)(readRegister(BME280_DIG_H3_REG))); calibration.dig_H4 = ((int16_t)((readRegister(BME280_DIG_H4_MSB_REG) << 4) + (readRegister(BME280_DIG_H4_LSB_REG) & 0x0F))); calibration.dig_H5 = ((int16_t)((readRegister(BME280_DIG_H5_MSB_REG) << 4) + ((readRegister(BME280_DIG_H4_LSB_REG) >> 4) & 0x0F))); - calibration.dig_H6 = ((uint8_t)readRegister(BME280_DIG_H6_REG)); + calibration.dig_H6 = ((int8_t)readRegister(BME280_DIG_H6_REG)); //Set the oversampling control words. //config will only be writeable in sleep mode, so first insure that. diff --git a/src/SparkFunBME280.h b/src/SparkFunBME280.h index f1a53d1..2c2c3ce 100644 --- a/src/SparkFunBME280.h +++ b/src/SparkFunBME280.h @@ -129,7 +129,7 @@ struct SensorCalibration uint8_t dig_H3; int16_t dig_H4; int16_t dig_H5; - uint8_t dig_H6; + int8_t dig_H6; };