#define AO_PANIC_USB 10 /* Trying to send USB packet while busy */
#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 */
/* Stop the operating system, beeping and blinking the reason */
void
#define AO_LED_NONE 0
+#ifndef AO_LED_TYPE
+#define AO_LED_TYPE uint8_t
+#endif
+
/* Turn on the specified LEDs */
void
-ao_led_on(uint8_t colors);
+ao_led_on(AO_LED_TYPE colors);
/* Turn off the specified LEDs */
void
-ao_led_off(uint8_t colors);
+ao_led_off(AO_LED_TYPE colors);
/* Set all of the LEDs to the specified state */
void
-ao_led_set(uint8_t colors);
+ao_led_set(AO_LED_TYPE colors);
/* Toggle the specified LEDs */
void
-ao_led_toggle(uint8_t colors);
+ao_led_toggle(AO_LED_TYPE colors);
/* Turn on the specified LEDs for the indicated interval */
void
-ao_led_for(uint8_t colors, uint16_t ticks) __reentrant;
+ao_led_for(AO_LED_TYPE colors, uint16_t ticks) __reentrant;
/* Initialize the LEDs */
void
-ao_led_init(uint8_t enable);
+ao_led_init(AO_LED_TYPE enable);
/*
* ao_usb.c
ao_cmd_filter(void);
#endif
-/*
- * ao_dma.c
- */
-
-/* Allocate a DMA channel. the 'done' parameter will be set when the
- * dma is finished and will be used to wakeup any waiters
- */
-
-uint8_t
-ao_dma_alloc(__xdata uint8_t * done);
-
-/* Setup a DMA channel */
-void
-ao_dma_set_transfer(uint8_t id,
- void __xdata *srcaddr,
- void __xdata *dstaddr,
- uint16_t count,
- uint8_t cfg0,
- uint8_t cfg1);
-
-/* Start a DMA channel */
-void
-ao_dma_start(uint8_t id);
-
-/* Manually trigger a DMA channel */
-void
-ao_dma_trigger(uint8_t id);
-
-/* Abort a running DMA transfer */
-void
-ao_dma_abort(uint8_t id);
-
-/* DMA interrupt routine */
-void
-ao_dma_isr(void) ao_arch_interrupt(8);
-
/*
* ao_mutex.c
*/
#error Please define HAS_SERIAL_1
#endif
-#if HAS_SERIAL_1
+#if HAS_SERIAL_1 | HAS_SERIAL_2 | HAS_SERIAL_3
#ifndef USE_SERIAL_STDIN
#error Please define USE_SERIAL_STDIN
#endif
#endif
-/*
- * ao_spi.c
- */
-
-extern __xdata uint8_t ao_spi_mutex;
-
-#define ao_spi_get_mask(reg,mask) do {\
- ao_mutex_get(&ao_spi_mutex); \
- (reg) &= ~(mask); \
- } while (0)
-
-#define ao_spi_put_mask(reg,mask) do { \
- (reg) |= (mask); \
- ao_mutex_put(&ao_spi_mutex); \
- } while (0)
-
-#define ao_spi_get_bit(bit) do {\
- ao_mutex_get(&ao_spi_mutex); \
- (bit) = 0; \
- } while (0)
-
-#define ao_spi_put_bit(bit) do { \
- (bit) = 1; \
- ao_mutex_put(&ao_spi_mutex); \
- } while (0)
-
-/*
- * The SPI mutex must be held to call either of these
- * functions -- this mutex covers the entire SPI operation,
- * from chip select low to chip select high
- */
-
-void
-ao_spi_send(void __xdata *block, uint16_t len) __reentrant;
-
-void
-ao_spi_recv(void __xdata *block, uint16_t len) __reentrant;
-
-void
-ao_spi_init(void);
-
/*
* ao_spi_slave.c
*/
void
ao_config_put(void);
+void
+ao_config_set_radio(void);
+
void
ao_config_init(void);
* ao_freq.c
*/
-int32_t ao_freq_to_set(int32_t freq, int32_t cal);
+int32_t ao_freq_to_set(int32_t freq, int32_t cal) __reentrant;
+
+#include <ao_arch_funcs.h>
+
+/*
+ * ao_ms5607.c
+ */
+
+void ao_ms5607_init(void);
#endif /* _AO_H_ */