* POSSIBILITY OF SUCH DAMAGE.\r
*\r
* @file bme280.c\r
-* @date 10/01/2020\r
-* @version 3.4.1\r
+* @date 21/01/2020\r
+* @version 3.4.2\r
*\r
*/\r
\r
double temperature_min = -40;\r
double temperature_max = 85;\r
\r
- var1 = ((double)uncomp_data->temperature) / 16384.0 - ((double)calib_data->dig_T1) / 1024.0;\r
- var1 = var1 * ((double)calib_data->dig_T2);\r
- var2 = (((double)uncomp_data->temperature) / 131072.0 - ((double)calib_data->dig_T1) / 8192.0);\r
- var2 = (var2 * var2) * ((double)calib_data->dig_T3);\r
+ var1 = ((double)uncomp_data->temperature) / 16384.0 - ((double)calib_data->dig_t1) / 1024.0;\r
+ var1 = var1 * ((double)calib_data->dig_t2);\r
+ var2 = (((double)uncomp_data->temperature) / 131072.0 - ((double)calib_data->dig_t1) / 8192.0);\r
+ var2 = (var2 * var2) * ((double)calib_data->dig_t3);\r
calib_data->t_fine = (int32_t)(var1 + var2);\r
temperature = (var1 + var2) / 5120.0;\r
if (temperature < temperature_min)\r
double pressure_max = 110000.0;\r
\r
var1 = ((double)calib_data->t_fine / 2.0) - 64000.0;\r
- var2 = var1 * var1 * ((double)calib_data->dig_P6) / 32768.0;\r
- var2 = var2 + var1 * ((double)calib_data->dig_P5) * 2.0;\r
- var2 = (var2 / 4.0) + (((double)calib_data->dig_P4) * 65536.0);\r
- var3 = ((double)calib_data->dig_P3) * var1 * var1 / 524288.0;\r
- var1 = (var3 + ((double)calib_data->dig_P2) * var1) / 524288.0;\r
- var1 = (1.0 + var1 / 32768.0) * ((double)calib_data->dig_P1);\r
+ var2 = var1 * var1 * ((double)calib_data->dig_p6) / 32768.0;\r
+ var2 = var2 + var1 * ((double)calib_data->dig_p5) * 2.0;\r
+ var2 = (var2 / 4.0) + (((double)calib_data->dig_p4) * 65536.0);\r
+ var3 = ((double)calib_data->dig_p3) * var1 * var1 / 524288.0;\r
+ var1 = (var3 + ((double)calib_data->dig_p2) * var1) / 524288.0;\r
+ var1 = (1.0 + var1 / 32768.0) * ((double)calib_data->dig_p1);\r
\r
/* avoid exception caused by division by zero */\r
- if (var1)\r
+ if (var1 > (0.0))\r
{\r
pressure = 1048576.0 - (double) uncomp_data->pressure;\r
pressure = (pressure - (var2 / 4096.0)) * 6250.0 / var1;\r
- var1 = ((double)calib_data->dig_P9) * pressure * pressure / 2147483648.0;\r
- var2 = pressure * ((double)calib_data->dig_P8) / 32768.0;\r
- pressure = pressure + (var1 + var2 + ((double)calib_data->dig_P7)) / 16.0;\r
+ var1 = ((double)calib_data->dig_p9) * pressure * pressure / 2147483648.0;\r
+ var2 = pressure * ((double)calib_data->dig_p8) / 32768.0;\r
+ pressure = pressure + (var1 + var2 + ((double)calib_data->dig_p7)) / 16.0;\r
if (pressure < pressure_min)\r
{\r
pressure = pressure_min;\r
double var6;\r
\r
var1 = ((double)calib_data->t_fine) - 76800.0;\r
- var2 = (((double)calib_data->dig_H4) * 64.0 + (((double)calib_data->dig_H5) / 16384.0) * var1);\r
+ var2 = (((double)calib_data->dig_h4) * 64.0 + (((double)calib_data->dig_h5) / 16384.0) * var1);\r
var3 = uncomp_data->humidity - var2;\r
- var4 = ((double)calib_data->dig_H2) / 65536.0;\r
- var5 = (1.0 + (((double)calib_data->dig_H3) / 67108864.0) * var1);\r
- var6 = 1.0 + (((double)calib_data->dig_H6) / 67108864.0) * var1 * var5;\r
+ var4 = ((double)calib_data->dig_h2) / 65536.0;\r
+ var5 = (1.0 + (((double)calib_data->dig_h3) / 67108864.0) * var1);\r
+ var6 = 1.0 + (((double)calib_data->dig_h6) / 67108864.0) * var1 * var5;\r
var6 = var3 * var4 * (var5 * var6);\r
- humidity = var6 * (1.0 - ((double)calib_data->dig_H1) * var6 / 524288.0);\r
+ humidity = var6 * (1.0 - ((double)calib_data->dig_h1) * var6 / 524288.0);\r
+\r
if (humidity > humidity_max)\r
{\r
humidity = humidity_max;\r
var2 = (((var2 * var2) / 4096) * ((int32_t)calib_data->dig_t3)) / 16384;\r
calib_data->t_fine = var1 + var2;\r
temperature = (calib_data->t_fine * 5 + 128) / 256;\r
+\r
if (temperature < temperature_min)\r
{\r
temperature = temperature_min;\r