#endif
#define pause(time) ao_delay(time)
-static __xdata enum ao_flight_state ao_report_state;
+static __pdata enum ao_flight_state ao_report_state;
static void
ao_report_beep(void) __reentrant
static void
ao_report_altitude(void)
{
- __xdata int16_t agl = ao_max_height;
+ __pdata int16_t agl = ao_max_height;
__xdata uint8_t digits[10];
- __xdata uint8_t ndigits, i;
+ __pdata uint8_t ndigits, i;
if (agl < 0)
agl = 0;
}
}
+#if HAS_IGNITE
static uint8_t
ao_report_igniter_ready(enum ao_igniter igniter)
{
while (c-- && ao_flight_state == ao_flight_pad)
pause(AO_MS_TO_TICKS(100));
}
+#endif
void
ao_report(void)
if (ao_flight_state == ao_flight_landed)
ao_report_altitude();
ao_report_beep();
+#if HAS_IGNITE
if (ao_flight_state == ao_flight_idle)
ao_report_continuity();
while (ao_flight_state == ao_flight_pad)
ao_report_continuity();
+#endif
__critical {
while (ao_report_state == ao_flight_state)
ao_sleep(DATA_TO_XDATA(&ao_flight_state));