101 uint8_t a_data_uint8_tr[QMP6988_CALIBRATION_DATA_LENGTH] = {0};
103 for (uint8_t
len = 0;
len < QMP6988_CALIBRATION_DATA_LENGTH;
len += 1) {
105 ESP_LOGE(TAG,
"Read calibration data (0xA0) error");
111 (int32_t)
encode_uint32(a_data_uint8_tr[18], a_data_uint8_tr[19], (a_data_uint8_tr[24] & 0x0f) << 4, 0);
118 (int32_t)
encode_uint32(a_data_uint8_tr[0], a_data_uint8_tr[1], a_data_uint8_tr[24] & 0xf0, 0);
131 "Calibration data:\n"
132 " COE_a0[%d] COE_a1[%d] COE_a2[%d] COE_b00[%d]\n"
133 " COE_bt1[%d] COE_bt2[%d] COE_bp1[%d] COE_b11[%d]\n"
134 " COE_bp2[%d] COE_b12[%d] COE_b21[%d] COE_bp3[%d]",
155 "Int calibration data:\n"
156 " a0[%d] a1[%d] a2[%d] b00[%d]\n"
157 " bt1[%lld] bt2[%lld] bp1[%lld] b11[%lld]\n"
158 " bp2[%lld] b12[%lld] b21[%lld] bp3[%lld]",
180 int64_t wk1, wk2, wk3;
183 wk1 = ((int64_t) ik->bt1 * (int64_t) tx);
184 wk2 = ((int64_t) ik->bp1 * (int64_t) dp) >> 5;
186 wk2 = ((int64_t) ik->bt2 * (int64_t) tx) >> 1;
187 wk2 = (wk2 * (int64_t) tx) >> 8;
189 wk2 = ((int64_t) ik->b11 * (int64_t) tx) >> 4;
190 wk2 = (wk2 * (int64_t) dp) >> 1;
192 wk2 = ((int64_t) ik->bp2 * (int64_t) dp) >> 13;
193 wk2 = (wk2 * (int64_t) dp) >> 1;
196 wk2 = ((int64_t) ik->b12 * (int64_t) tx);
197 wk2 = (wk2 * (int64_t) tx) >> 22;
198 wk2 = (wk2 * (int64_t) dp) >> 1;
200 wk2 = ((int64_t) ik->b21 * (int64_t) tx) >> 6;
201 wk2 = (wk2 * (int64_t) dp) >> 23;
202 wk2 = (wk2 * (int64_t) dp) >> 1;
204 wk2 = ((int64_t) ik->bp3 * (int64_t) dp) >> 12;
205 wk2 = (wk2 * (int64_t) dp) >> 23;
206 wk2 = (wk2 * (int64_t) dp);
287 uint32_t p_read, t_read;
288 int32_t p_raw, t_raw;
289 uint8_t a_data_uint8_tr[6] = {0};
290 int32_t t_int, p_int;
294 err = this->
read_register(QMP6988_PRESSURE_MSB_REG, a_data_uint8_tr, 6);
296 ESP_LOGE(TAG,
"Error reading raw pressure/temp values");
299 p_read =
encode_uint24(a_data_uint8_tr[0], a_data_uint8_tr[1], a_data_uint8_tr[2]);
300 p_raw = (int32_t) (p_read - SUBTRACTOR);
302 t_read =
encode_uint24(a_data_uint8_tr[3], a_data_uint8_tr[4], a_data_uint8_tr[5]);
303 t_raw = (int32_t) (t_read - SUBTRACTOR);