#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
#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
*/
*/
#define AO_CONFIG_MAJOR 1
-#define AO_CONFIG_MINOR 10
-#define AO_AES_LEN 16
-
-#if HAS_RADIO_CHANNELS
-#define AO_CHANNEL_NAME_LEN 10
-
-#define AO_NUM_CHANNELS 10
+#define AO_CONFIG_MINOR 11
-struct ao_radio_channel {
- char name[AO_CHANNEL_NAME_LEN];
- uint32_t kHz;
-};
-#endif
+#define AO_AES_LEN 16
struct ao_config {
uint8_t major;
uint8_t minor;
uint16_t main_deploy;
int16_t accel_plus_g; /* changed for minor version 2 */
- uint8_t radio_channel;
+ uint8_t _legacy_radio_channel;
char callsign[AO_MAX_CALLSIGN + 1];
uint8_t apogee_delay; /* minor version 1 */
int16_t accel_minus_g; /* minor version 2 */
uint8_t radio_enable; /* minor version 8 */
uint8_t aes_key[AO_AES_LEN]; /* minor version 9 */
uint32_t frequency; /* minor version 10 */
-#if HAS_RADIO_CHANNELS
- struct ao_radio_channel radio_channels[AO_NUM_CHANNELS]; /* minor version 10 */
-#endif
+ uint16_t apogee_lockout; /* minor version 11 */
};
#define AO_IGNITE_MODE_DUAL 0
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_ */