#define AO_PANIC_BT 11 /* Communications with bluetooth device failed */
#define AO_PANIC_STACK 12 /* Stack overflow */
#define AO_PANIC_SPI 13 /* SPI communication failure */
+#define AO_PANIC_CRASH 14 /* Processor crashed */
#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 */
extern volatile __data AO_TICK_TYPE ao_tick_count;
/* Our timer runs at 100Hz */
+#ifndef AO_HERTZ
#define AO_HERTZ 100
+#endif
#define AO_MS_TO_TICKS(ms) ((ms) / (1000 / AO_HERTZ))
#define AO_SEC_TO_TICKS(s) ((s) * AO_HERTZ)
/* Set the ADC interval */
void
-ao_timer_set_adc_interval(uint8_t interval) __critical;
+ao_timer_set_adc_interval(uint8_t interval);
/* Timer interrupt */
void
* ao_mutex.c
*/
+#ifndef ao_mutex_get
void
ao_mutex_get(__xdata uint8_t *ao_mutex) __reentrant;
void
ao_mutex_put(__xdata uint8_t *ao_mutex) __reentrant;
+#endif
/*
* ao_cmd.c
void
ao_cmd_decimal(void);
+/* Read a single hex nibble off stdin. */
+uint8_t
+ao_getnibble(void);
+
uint8_t
ao_match_word(__code char *word);
* Convert between pressure in Pa and altitude in meters
*/
-int32_t
+#include <ao_data.h>
+
+alt_t
ao_pa_to_altitude(int32_t pa);
int32_t
-ao_altitude_to_pa(int32_t alt);
+ao_altitude_to_pa(alt_t alt);
#if HAS_DBG
#include <ao_dbg.h>
void
ao_radio_test(uint8_t on);
+typedef int16_t (*ao_radio_fill_func)(uint8_t *buffer, int16_t len);
+
+void
+ao_radio_send_lots(ao_radio_fill_func fill);
+
/*
* Compute the packet length as follows:
*
union ao_monitor {
struct ao_telemetry_raw_recv raw;
struct ao_telemetry_all_recv all;
+#if LEGACY_MONITOR
struct ao_telemetry_orig_recv orig;
struct ao_telemetry_tiny_recv tiny;
+#endif
};
extern __xdata union ao_monitor ao_monitor_ring[AO_MONITOR_RING];
* ao_stdio.c
*/
-#define AO_READ_AGAIN ((char) -1)
+#define AO_READ_AGAIN (-1)
struct ao_stdio {
- char (*pollchar)(void);
+ int (*pollchar)(void);
void (*putchar)(char c) __reentrant;
void (*flush)(void);
uint8_t echo;
ao_echo(void);
int8_t
-ao_add_stdio(char (*pollchar)(void),
+ao_add_stdio(int (*pollchar)(void),
void (*putchar)(char) __reentrant,
void (*flush)(void)) __reentrant;
#define AO_IGNITE_MODE_APOGEE 1
#define AO_IGNITE_MODE_MAIN 2
+#define AO_RADIO_ENABLE_CORE 1
+#define AO_RADIO_ENABLE_APRS 2
+#define AO_RADIO_DISABLE_TELEMETRY 4
+#define AO_RADIO_DISABLE_RDF 8
+
#define AO_PAD_ORIENTATION_ANTENNA_UP 0
#define AO_PAD_ORIENTATION_ANTENNA_DOWN 1