- uint8_t addr;
- uint32_t d1, d2;
- int32_t dT;
- int32_t TEMP;
- int64_t OFF;
- int64_t SENS;
- int32_t P;
-
- ao_ms5607_init_chip();
- printf ("reserved: %d\n", ms5607_prom.reserved);
- printf ("sens: %d\n", ms5607_prom.sens);
- printf ("off: %d\n", ms5607_prom.off);
- printf ("tcs: %d\n", ms5607_prom.tcs);
- printf ("tco: %d\n", ms5607_prom.tco);
- printf ("tref: %d\n", ms5607_prom.tref);
- printf ("tempsens: %d\n", ms5607_prom.tempsens);
- printf ("crc: %d\n", ms5607_prom.crc);
- d1 = ao_ms5607_convert(AO_MS5607_CONVERT_D1_4096);
- printf ("Conversion D1: %d\n", d1);
- d2 = ao_ms5607_convert(AO_MS5607_CONVERT_D2_4096);
- printf ("Conversion D2: %d\n", d2);
-
- dT = d2 - ((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;
+ ao_ms5607_setup();
+ for (;;)
+ {
+ ao_ms5607_sample(&ao_ms5607_current);
+ ao_arch_block_interrupts();
+ AO_DATA_PRESENT(AO_DATA_MS5607);
+ AO_DATA_WAIT();
+ ao_arch_release_interrupts();