void
ao_wakeup(__xdata void *wchan);
+/* Wake up a specific task */
+void
+ao_wake_task(__xdata struct ao_task *task);
+
/* Yield the processor to another task */
void
ao_yield(void) _naked;
void
ao_add_task(__xdata struct ao_task * task, void (*start)(void), __code char *name) __reentrant;
+/* Terminate the current task */
+void
+ao_exit(void);
+
/* Dump task info to console */
void
ao_task_info(void);
ao_serial_putchar(char c) __critical;
#define AO_SERIAL_SPEED_4800 0
-#define AO_SERIAL_SPEED_57600 1
+#define AO_SERIAL_SPEED_9600 1
+#define AO_SERIAL_SPEED_57600 2
void
ao_serial_set_speed(uint8_t speed);
ao_radio_recv(__xdata struct ao_radio_recv *recv) __reentrant;
void
-ao_radio_rdf(void);
+ao_radio_rdf(int ms);
void
ao_radio_rdf_abort(void);
*/
#define AO_CONFIG_MAJOR 1
-#define AO_CONFIG_MINOR 0
+#define AO_CONFIG_MINOR 1
struct ao_config {
uint8_t major;
int16_t accel_zero_g;
uint8_t radio_channel;
char callsign[AO_MAX_CALLSIGN + 1];
+ uint8_t apogee_delay;
};
extern __xdata struct ao_config ao_config;