|
references
1. get_power_mode() missing parentheses in set_oversamp_pressure and
set_oversamp_temperature — compared method object instead of calling it,
so sleep-mode check never worked correctly.
2. set_oversamp_humidity else branch wrote ctrl_hum_reg into CTRL_MEAS
register instead of ctrl_meas_reg (per datasheet §5.4.3, humidity
settings require a subsequent write to ctrl_meas with the correct value).
3. dig_H6 stored as unsigned byte — should be int8_t per Bosch
bme280_defs.h and Adafruit_BME280.h.
4. dig_H4/H5 sign extension wrong — used to_s16() on 12-bit signed values.
Now sign-extends from MSB byte first (to_s8) then combines with LSB
nibble, matching Bosch parse_humidity_calib_data() and Adafruit
readCoefficients().
5. Humidity compensation formula was missing var5 multiplication factor
vs Bosch compensate_humidity() (BME280_DOUBLE_ENABLE path). Rewritten
with Bosch variable names for easy cross-referencing.
|