#define AO_DATA_ALL (AO_DATA_ADC|AO_DATA_MS5607|AO_DATA_MPU6000|AO_DATA_HMC5883|AO_DATA_MMA655X|AO_DATA_MPU9250|AO_DATA_ADXL375|AO_DATA_BMX160|AO_DATA_MMC5983)
struct ao_data {
- uint16_t tick;
+ AO_TICK_TYPE tick;
#if HAS_ADC
struct ao_adc adc;
#endif
#endif /* AO_DATA_RING */
+#define AO_ALT_TYPE int32_t
+
+typedef AO_ALT_TYPE alt_t;
+
#if !HAS_BARO && HAS_MS5607
/* Either an MS5607 or an MS5611 hooked to a SPI port
typedef int32_t pres_t;
-#define AO_ALT_TYPE int32_t
-
-typedef AO_ALT_TYPE alt_t;
-
#define ao_data_pres_cook(packet) ao_ms5607_convert(&packet->ms5607_raw, &packet->ms5607_cooked)
#define ao_data_pres(packet) ((packet)->ms5607_cooked.pres)
-#define ao_data_temp(packet) ((packet)->ms5607_cooked.temp)
+#define ao_data_temp(packet) ((int16_t) (packet)->ms5607_cooked.temp)
#define pres_to_altitude(p) ao_pa_to_altitude(p)
#endif
#if AO_MMA655X_INVERT
-#define ao_data_accel_raw(packet) (AO_ACCEL_INVERT - (packet)->mma655x)
+#define ao_data_accel_raw(packet) ((accel_t) (AO_ACCEL_INVERT - (packet)->mma655x))
#else
-#define ao_data_accel_raw(packet) ((packet)->mma655x)
+#define ao_data_accel_raw(packet) ((accel_t) (packet)->mma655x)
#endif
#define ao_data_accel_invert(accel) (AO_ACCEL_INVERT - (accel))