Merge remote-tracking branch 'origin/telemini'
[fw/altos] / src / telemini-v2.0 / ao_pins.h
index fac6c535e60176aab569885a7970f7024be858bc..264ad16d9154172d65d544f5cf0e71da7d134d33 100644 (file)
@@ -74,6 +74,7 @@
 #define AO_MS5607_CS_MASK      (1 << AO_MS5607_CS_PIN)
 #define AO_MS5607_MISO_PORT    P0
 #define AO_MS5607_MISO_PIN     2
+#define AO_MS5607_MISO         P0_2
 #define AO_MS5607_MISO_MASK    (1 << AO_MS5607_MISO_PIN)
 #define AO_MS5607_SPI_INDEX    0
 #define HAS_EXTI_0             1
@@ -128,26 +129,32 @@ struct ao_adc {
 
 #define AO_ADC_PINS    ((1 << 0) | (1 << 1) | (1 << 4))
 
-#define FETCH_ADC()                                                    \
-       a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].adc);      \
-       switch (sequence) {                                             \
-       case 4:                                                         \
-               a += 4;                                                 \
-               sequence = 0;                                           \
-               break;                                                  \
-       case 1:                                                         \
-               a += 2;                                                 \
-               sequence = 4;                                           \
-               break;                                                  \
-       case 0:                                                         \
-               sequence = 1;                                           \
-               break;                                                  \
-       }                                                               \
-       a[0] = ADCL;                                                    \
-       a[1] = ADCH;                                                    \
-       if (sequence) {                                                 \
-               ADCCON3 = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | sequence; \
-               return;                                                 \
-       }
+#define FETCH_ADC() do {                                               \
+               a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].adc); \
+               switch (sequence) {                                     \
+               case 4:                                                 \
+                       a += 4;                                         \
+                       sequence = 0;                                   \
+                       break;                                          \
+               case 1:                                                 \
+                       a += 2;                                         \
+                       sequence = 4;                                   \
+                       break;                                          \
+               case 0:                                                 \
+                       sequence = 1;                                   \
+                       break;                                          \
+               }                                                       \
+               a[0] = ADCL;                                            \
+               a[1] = ADCH;                                            \
+               if (sequence) {                                         \
+                       ADCCON3 = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | sequence; \
+                       return;                                         \
+               }                                                       \
+               AO_DATA_PRESENT(AO_DATA_ADC);                           \
+               if (ao_data_present != AO_DATA_ALL)                     \
+                       return;                                         \
+               ao_data_ring[ao_data_head].ms5607_raw.pres = ao_ms5607_current.pres; \
+               ao_data_ring[ao_data_head].ms5607_raw.temp = ao_ms5607_current.temp; \
+       } while (0)
 
 #endif /* _AO_PINS_H_ */