blob: 648631a2672e6b197d21fe1804c33d8738ff64be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include "util.h"
unsigned int ws_log16(unsigned int x) {
unsigned int l = 0;
while (x >>= 4) ++l; // bitshift right by 4 until x == 0
return l;
}
uint8_t ws_sensor_tmp_to_8(uint16_t temperature) {
return temperature / 256;
}
uint8_t ws_sensor_hum_to_8(uint16_t humidity) {
return humidity / 256;
}
uint8_t ws_sensor_atm_to_8(uint16_t atmospheric_pressure) {
return atmospheric_pressure / 256;
}
float ws_sensor_tmp_to_f(uint8_t temperature) {
return ((175.72 * temperature) / 256.0) - 46.85;
}
float ws_sensor_hum_to_f(uint8_t humidity) {
return ((125.0 * humidity) / 256.0) - 6.0;
}
float ws_sensor_atm_to_f(uint8_t atmospheric_pressure) {
return ((20.0 * atmospheric_pressure) / 256.0) + 990.0; // datasheet no?
}
|