@@ -87,7 +87,7 @@ int ENVClass::begin()
87
87
readHTS221Calibration ();
88
88
89
89
// enable HTS221
90
- i2cWrite (HTS221_ADDRESS, HTS221_CTRL1_REG, 0x80 );
90
+ i2cWrite (HTS221_ADDRESS, HTS221_CTRL1_REG, 0x84 );
91
91
92
92
// configure VEML6075 for 100 ms
93
93
i2cWriteWord (VEML6075_ADDRESS, VEML6075_UV_CONF_REG, 0x0010 );
@@ -100,8 +100,6 @@ void ENVClass::end()
100
100
// shutdown VEML6075
101
101
i2cWriteWord (VEML6075_ADDRESS, VEML6075_UV_CONF_REG, 0x0001 );
102
102
103
- delay (80 );
104
-
105
103
// disable HTS221
106
104
i2cWrite (HTS221_ADDRESS, HTS221_CTRL1_REG, 0x00 );
107
105
@@ -113,6 +111,9 @@ void ENVClass::end()
113
111
114
112
float ENVClass::readTemperature (int units)
115
113
{
114
+ // Wait for trigger a new read operation
115
+ while (i2cRead (HTS221_ADDRESS, HTS221_CTRL2_REG) & 0x01 );
116
+
116
117
// trigger one shot
117
118
i2cWrite (HTS221_ADDRESS, HTS221_CTRL2_REG, 0x01 );
118
119
@@ -133,6 +134,9 @@ float ENVClass::readTemperature(int units)
133
134
134
135
float ENVClass::readHumidity ()
135
136
{
137
+ // Wait for trigger a new read operation
138
+ while (i2cRead (HTS221_ADDRESS, HTS221_CTRL2_REG) & 0x01 );
139
+
136
140
// trigger one shot
137
141
i2cWrite (HTS221_ADDRESS, HTS221_CTRL2_REG, 0x01 );
138
142
@@ -143,8 +147,8 @@ float ENVClass::readHumidity()
143
147
144
148
// read value and convert
145
149
int16_t hout = i2cRead16 (HTS221_ADDRESS, HTS221_HUMIDITY_OUT_L_REG);
146
-
147
- return (hout * _hts221HumiditySlope + _hts221HumidityZero) ;
150
+ float reading = hout * _hts221HumiditySlope + _hts221HumidityZero;
151
+ return reading ;
148
152
}
149
153
150
154
float ENVClass::readPressure (int units)
0 commit comments