opt4048: update main loop to query OPT, ongoing change to non-blocking i2c

This commit is contained in:
A.M. Rowsell 2026-07-12 10:23:19 -04:00
commit 1ba2d96180
Signed by: amr
GPG key ID: E0879EDBDB0CA7B1
3 changed files with 36 additions and 25 deletions

View file

@ -13,12 +13,12 @@ void getAHTData(i2c_inst_t *i2c, double *t, double *h) {
uint32_t temperature;
uint32_t humidity;
i2c_write_blocking(i2c, AHT_ADDR, AHT_MEASURE, 3,
false); // trigger measurement
i2c_write_timeout_us(i2c, AHT_ADDR, AHT_MEASURE, 3, false,
1200); // trigger measurement
// now we must delay ~100ms
sleep_ms(100);
i2c_read_blocking(i2c, AHT_ADDR, result, 6,
false); // read 6 bytes back
i2c_read_timeout_us(i2c, AHT_ADDR, result, 6, false,
3000); // read 6 bytes back
humidity = (result[1] << 12) | (result[2] << 4) | (result[3] & 0xF0) >> 4;
temperature = (result[3] & 0x0F) << 16 | (result[4] << 8) | result[5];
*t = (((double)temperature / 1048576.0f) * 200.0f) - 50.0f;