File tree 3 files changed +16
-16
lines changed
3 files changed +16
-16
lines changed Original file line number Diff line number Diff line change @@ -67,12 +67,12 @@ static void sAppTask(void *pArg)
67
67
{
68
68
sAppCnt ++ ;
69
69
70
- const uint16_t hum1 = si7021MeasHumidity ();
71
- const uint16_t temp1 = si7021MeasTemperature ();
72
- uint16_t hum2 , temp2 ;
70
+ const int16_t hum1 = si7021MeasHumidity ();
71
+ const int16_t temp1 = si7021MeasTemperature ();
72
+ int16_t hum2 , temp2 ;
73
73
si7021MeasHumidityAndTemperature (& hum2 , & temp2 );
74
74
75
- DEBUG ("RH =%.2f (%.2f), T=%.2f (%.2f)" ,
75
+ DEBUG ("H =%.2f (%.2f), T=%.2f (%.2f)" ,
76
76
(float )hum1 * 0.01f , (float )hum2 * 0.01f ,
77
77
(float )temp1 * 0.01f , (float )temp2 * 0.01f );
78
78
Original file line number Diff line number Diff line change @@ -125,7 +125,7 @@ void si7021Init(void)
125
125
sn1 , sn2 , fw >> 4 , fw & 0x0f );
126
126
}
127
127
128
- uint16_t si7021MeasHumidity (void )
128
+ int16_t si7021MeasHumidity (void )
129
129
{
130
130
if (!sSi7021Ready )
131
131
{
@@ -146,12 +146,12 @@ uint16_t si7021MeasHumidity(void)
146
146
}
147
147
148
148
const uint16_t raw = ((uint16_t )resp [0 ] << 8 ) | resp [1 ];
149
- const uint16_t hum = (((uint32_t )raw * (125 * 100 )) / 65536 ) - 600 ;
149
+ const int16_t hum = (((int32_t )raw * (125 * 100 )) / 65536 ) - 600 ;
150
150
151
151
return CLIP (hum , 0 , 10000 );
152
152
}
153
153
154
- uint16_t si7021MeasTemperature (void )
154
+ int16_t si7021MeasTemperature (void )
155
155
{
156
156
if (!sSi7021Ready )
157
157
{
@@ -172,14 +172,14 @@ uint16_t si7021MeasTemperature(void)
172
172
}
173
173
174
174
const uint16_t raw = ((uint16_t )resp [0 ] << 8 ) | resp [1 ];
175
- const uint16_t temp = (((uint32_t )raw * (uint32_t )(175.72 * 100 )) / 65536 ) - (uint32_t )(46.85 * 100 );
175
+ const int16_t temp = (((int32_t )raw * (int32_t )(175.72 * 100 )) / 65536 ) - (int32_t )(46.85 * 100 );
176
176
177
- return temp ;
177
+ return CLIP ( temp , -4600 , 12800 ) ;
178
178
}
179
179
180
180
181
181
182
- bool si7021MeasHumidityAndTemperature (uint16_t * pHum , uint16_t * pTemp )
182
+ bool si7021MeasHumidityAndTemperature (int16_t * pHum , int16_t * pTemp )
183
183
{
184
184
if (!sSi7021Ready )
185
185
{
Original file line number Diff line number Diff line change 32
32
void si7021Init (void );
33
33
34
34
//! temperature or humidity value to indicate no data available
35
- #define SI7021_NODATA 0xffff
35
+ #define SI7021_NODATA 0x7fff /* = 32767 = INT16_MAX */
36
36
37
37
//! measure relative humidity
38
38
/*!
39
- \returns the relative humidity value [0.01%], or #SI7021_NODATA on error
39
+ \returns the relative humidity value [0.01%], value 0..10000 or #SI7021_NODATA on error
40
40
*/
41
- uint16_t si7021MeasHumidity (void );
41
+ int16_t si7021MeasHumidity (void );
42
42
43
43
//! measure temperature
44
44
/*!
45
- \returns the temperature value [0.01C], or #SI7021_NODATA on error
45
+ \returns the temperature value [0.01C], value -4600..12800 or #SI7021_NODATA on error
46
46
*/
47
- uint16_t si7021MeasTemperature (void );
47
+ int16_t si7021MeasTemperature (void );
48
48
49
49
50
50
//! measure relative humidity and temperature at the same time
@@ -53,7 +53,7 @@ uint16_t si7021MeasTemperature(void);
53
53
\param[out] pTemp the temperature value [0.01C], or #SI7021_NODATA on error
54
54
\returns true if both measurements are available
55
55
*/
56
- bool si7021MeasHumidityAndTemperature (uint16_t * pHum , uint16_t * pTemp );
56
+ bool si7021MeasHumidityAndTemperature (int16_t * pHum , int16_t * pTemp );
57
57
58
58
59
59
#endif // __SI7021_H__
You can’t perform that action at this time.
0 commit comments