#endif
#if HAS_ADC
+
+#ifndef HAS_ACCEL_REF
+#error Please define HAS_ACCEL_REF
+#endif
+
/*
* ao_adc.c
*/
*/
extern volatile __xdata struct ao_adc ao_adc_ring[AO_ADC_RING];
extern volatile __data uint8_t ao_adc_head;
+#if HAS_ACCEL_REF
+extern volatile __xdata uint16_t ao_accel_ref[AO_ADC_RING];
+#endif
/* Trigger a conversion sequence (called from the timer interrupt) */
void
ao_flight_invalid = 9
};
-extern __xdata struct ao_adc ao_flight_data;
+extern __data uint8_t ao_flight_adc;
extern __pdata enum ao_flight_state ao_flight_state;
extern __pdata uint16_t ao_flight_tick;
extern __pdata int16_t ao_flight_accel;
#define AO_TELEMETRY_VERSION 3
struct ao_telemetry {
- uint8_t addr;
+ uint16_t serial;
uint16_t flight;
uint8_t flight_state;
int16_t flight_accel;
#define ao_radio_put() ao_mutex_put(&ao_radio_mutex)
void
-ao_radio_set_telemetry(void);
+ao_radio_set_fixed_pkt(size_t size);
-void
-ao_radio_set_packet(void);
+#define ao_radio_set_telemetry() \
+ ao_radio_set_fixed_pkt(sizeof (struct ao_telemetry))
-void
-ao_radio_set_rdf(void);
+#define ao_radio_set_packet() \
+ ao_radio_set_fixed_pkt(sizeof (struct ao_packet))
void
ao_radio_send(__xdata void *data, uint8_t size) __reentrant;