@@ -147,7 +147,7 @@ static void read_registers(uint8_t reg, uint8_t *buf, uint16_t len) {
147
147
void read_compensation_parameters () {
148
148
uint8_t buffer [26 ];
149
149
150
- read_registers (0x88 , buffer , 24 );
150
+ read_registers (0x88 , buffer , 26 );
151
151
152
152
dig_T1 = buffer [0 ] | (buffer [1 ] << 8 );
153
153
dig_T2 = buffer [2 ] | (buffer [3 ] << 8 );
@@ -163,15 +163,15 @@ void read_compensation_parameters() {
163
163
dig_P8 = buffer [20 ] | (buffer [21 ] << 8 );
164
164
dig_P9 = buffer [22 ] | (buffer [23 ] << 8 );
165
165
166
- dig_H1 = buffer [25 ];
166
+ dig_H1 = buffer [25 ]; // 0xA1
167
167
168
168
read_registers (0xE1 , buffer , 8 );
169
169
170
- dig_H2 = buffer [0 ] | (buffer [1 ] << 8 );
171
- dig_H3 = (int8_t ) buffer [2 ];
172
- dig_H4 = buffer [3 ] << 4 | (buffer [4 ] & 0xf );
173
- dig_H5 = (buffer [5 ] >> 4 ) | (buffer [6 ] << 4 );
174
- dig_H6 = (int8_t ) buffer [7 ];
170
+ dig_H2 = buffer [0 ] | (buffer [1 ] << 8 ); // 0xE1 | 0xE2
171
+ dig_H3 = (int8_t ) buffer [2 ]; // 0xE3
172
+ dig_H4 = buffer [3 ] << 4 | (buffer [4 ] & 0xf ); // 0xE4 | 0xE5[3:0]
173
+ dig_H5 = (buffer [4 ] >> 4 ) | (buffer [5 ] << 4 ); // 0xE5[7:4] | 0xE6
174
+ dig_H6 = (int8_t ) buffer [6 ]; // 0xE7
175
175
}
176
176
177
177
static void bme280_read_raw (int32_t * humidity , int32_t * pressure , int32_t * temperature ) {
@@ -225,8 +225,8 @@ int main() {
225
225
226
226
// These are the raw numbers from the chip, so we need to run through the
227
227
// compensations to get human understandable numbers
228
- pressure = compensate_pressure (pressure );
229
228
temperature = compensate_temp (temperature );
229
+ pressure = compensate_pressure (pressure );
230
230
humidity = compensate_humidity (humidity );
231
231
232
232
printf ("Humidity = %.2f%%\n" , humidity / 1024.0 );
0 commit comments