Skip to content

Commit 1118ae6

Browse files
committed
fix hangs due to HTS221 and speed upthe humidity readings
1 parent aebe5cf commit 1118ae6

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

src/MKRENV.cpp

+5-7
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ int ENVClass::begin()
8787
readHTS221Calibration();
8888

8989
// enable HTS221
90-
i2cWrite(HTS221_ADDRESS, HTS221_CTRL1_REG, 0x80);
90+
i2cWrite(HTS221_ADDRESS, HTS221_CTRL1_REG, 0x84);
9191

9292
// configure VEML6075 for 100 ms
9393
i2cWriteWord(VEML6075_ADDRESS, VEML6075_UV_CONF_REG, 0x0010);
@@ -100,8 +100,6 @@ void ENVClass::end()
100100
// shutdown VEML6075
101101
i2cWriteWord(VEML6075_ADDRESS, VEML6075_UV_CONF_REG, 0x0001);
102102

103-
delay(80);
104-
105103
// disable HTS221
106104
i2cWrite(HTS221_ADDRESS, HTS221_CTRL1_REG, 0x00);
107105

@@ -117,7 +115,7 @@ float ENVClass::readTemperature(int units)
117115
i2cWrite(HTS221_ADDRESS, HTS221_CTRL2_REG, 0x01);
118116

119117
// wait for completion
120-
while ((i2cRead(HTS221_ADDRESS, HTS221_STATUS_REG) & 0x01) == 0) {
118+
while ((i2cRead(HTS221_ADDRESS, HTS221_STATUS_REG) & 0x03) == 0) {
121119
yield();
122120
}
123121

@@ -137,14 +135,14 @@ float ENVClass::readHumidity()
137135
i2cWrite(HTS221_ADDRESS, HTS221_CTRL2_REG, 0x01);
138136

139137
// wait for completion
140-
while ((i2cRead(HTS221_ADDRESS, HTS221_STATUS_REG) & 0x02) == 0) {
138+
while ((i2cRead(HTS221_ADDRESS, HTS221_STATUS_REG) & 0x03) == 0) {
141139
yield();
142140
}
143141

144142
// read value and convert
145143
int16_t hout = i2cRead16(HTS221_ADDRESS, HTS221_HUMIDITY_OUT_L_REG);
146-
147-
return (hout * _hts221HumiditySlope + _hts221HumidityZero);
144+
float reading = hout * _hts221HumiditySlope + _hts221HumidityZero;
145+
return reading;
148146
}
149147

150148
float ENVClass::readPressure(int units)

0 commit comments

Comments
 (0)