- uint8_t addr;
- int32_t dT;
- int32_t TEMP;
- int64_t OFF;
- int64_t SENS;
- int32_t P;
-
- dT = sample->temp - ((int32_t) ms5607_prom.tref << 8);
-
- TEMP = 2000 + (((int64_t) dT * ms5607_prom.tempsens) >> 23);
-
- OFF = ((int64_t) ms5607_prom.off << 17) + (((int64_t) ms5607_prom.tco * dT) >> 6);
-
- SENS = ((int64_t) ms5607_prom.sens << 16) + (((int64_t) ms5607_prom.tcs * dT) >> 7);
-
- if (TEMP < 2000) {
- int32_t T2 = ((int64_t) dT * (int64_t) dT) >> 31;
- int32_t TEMPM = TEMP - 2000;
- int64_t OFF2 = (61 * (int64_t) TEMPM * (int64_t) TEMPM) >> 4;
- int64_t SENS2 = 2 * (int64_t) TEMPM * (int64_t) TEMPM;
- if (TEMP < 1500) {
- int32_t TEMPP = TEMP + 1500;
- int64_t TEMPP2 = TEMPP * TEMPP;
- OFF2 = OFF2 + 15 * TEMPP2;
- SENS2 = SENS2 + 8 * TEMPP2;
- }
- TEMP -= T2;
- OFF -= OFF2;
- SENS -= SENS2;
- }
-
- value->pres = ((((int64_t) sample->pres * SENS) >> 21) - OFF) >> 15;
- value->temp = TEMP;
+ sample->pres = ao_ms5607_get_sample(AO_CONVERT_D1);
+ sample->temp = ao_ms5607_get_sample(AO_CONVERT_D2);