must get temp before humidity or pressure in order to set t_fine

This commit is contained in:
ladyada 2016-01-21 18:31:21 -05:00
parent c55f471e5c
commit b3f8576b48
1 changed files with 4 additions and 0 deletions

View File

@ -256,6 +256,8 @@ float Adafruit_BME280::readTemperature(void)
float Adafruit_BME280::readPressure(void) { float Adafruit_BME280::readPressure(void) {
int64_t var1, var2, p; int64_t var1, var2, p;
readTemperature(); // must be done first to get t_fine
int32_t adc_P = read16(BME280_REGISTER_PRESSUREDATA); int32_t adc_P = read16(BME280_REGISTER_PRESSUREDATA);
adc_P <<= 8; adc_P <<= 8;
adc_P |= read8(BME280_REGISTER_PRESSUREDATA+2); adc_P |= read8(BME280_REGISTER_PRESSUREDATA+2);
@ -289,6 +291,8 @@ float Adafruit_BME280::readPressure(void) {
/**************************************************************************/ /**************************************************************************/
float Adafruit_BME280::readHumidity(void) { float Adafruit_BME280::readHumidity(void) {
readTemperature(); // must be done first to get t_fine
int32_t adc_H = read16(BME280_REGISTER_HUMIDDATA); int32_t adc_H = read16(BME280_REGISTER_HUMIDDATA);
int32_t v_x1_u32r; int32_t v_x1_u32r;