#define HAS_TASK 1
#endif
+#ifndef AO_PORT_TYPE
+#define AO_PORT_TYPE uint8_t
+#endif
+
+typedef AO_PORT_TYPE ao_port_t;
+
#if HAS_TASK
#include <ao_task.h>
+#else
+#include <ao_notask.h>
#endif
/*
#define AO_PANIC_SPI 13 /* SPI communication failure */
#define AO_PANIC_CRASH 14 /* Processor crashed */
#define AO_PANIC_BUFIO 15 /* Mis-using bufio API */
+#define AO_PANIC_EXTI 16 /* Mis-using exti API */
+#define AO_PANIC_FAST_TIMER 17 /* Mis-using fast timer API */
#define AO_PANIC_SELF_TEST_CC1120 0x40 | 1 /* Self test failure */
#define AO_PANIC_SELF_TEST_HMC5883 0x40 | 2 /* Self test failure */
#define AO_PANIC_SELF_TEST_MPU6000 0x40 | 3 /* Self test failure */
#define AO_SEC_TO_TICKS(s) ((s) * AO_HERTZ)
/* Returns the current time in ticks */
-uint16_t
+AO_TICK_TYPE
ao_time(void);
/* Suspend the current task until ticks time has passed */
extern __pdata char ao_cmd_lex_c;
extern __pdata enum ao_cmd_status ao_cmd_status;
+void
+ao_put_string(__code char *s);
+
void
ao_cmd_lex(void);
void
ao_gps_tracking_print(__xdata struct ao_gps_tracking_orig *gps_tracking_data);
+void
+ao_gps_show(void) __reentrant;
+
void
ao_gps_init(void);
extern __xdata uint8_t ao_radio_dma;
+extern __xdata int8_t ao_radio_rssi;
+
#ifdef PKT_APPEND_STATUS_1_CRC_OK
#define AO_RADIO_STATUS_CRC_OK PKT_APPEND_STATUS_1_CRC_OK
#else
#if HAS_RADIO_RECV
uint8_t
-ao_radio_recv(__xdata void *d, uint8_t size) __reentrant;
+ao_radio_recv(__xdata void *d, uint8_t size, uint8_t timeout) __reentrant;
void
ao_radio_recv_abort(void);
uint8_t firing;
};
+extern __code char * __code ao_igniter_status_names[];
+
extern __xdata struct ao_ignition ao_ignition[2];
enum ao_igniter_status