X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fcore%2Fao.h;h=9a3b5829e87745449ae465ac03f9e1692865b2a0;hb=f952f9c285e2718a433c8c720c9b5d9c369e7036;hp=8263a52983cd2daf167761976353eb459f1f29e5;hpb=1f2b75518169c4f2da9762de46bf1d9a71a04d17;p=fw%2Faltos diff --git a/src/core/ao.h b/src/core/ao.h index 8263a529..9a3b5829 100644 --- a/src/core/ao.h +++ b/src/core/ao.h @@ -114,6 +114,7 @@ ao_start_scheduler(void); #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 @@ -940,47 +941,6 @@ ao_serial0_init(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 */ @@ -1497,26 +1457,16 @@ ao_igniter_init(void); */ #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 */ @@ -1528,9 +1478,7 @@ struct ao_config { 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 @@ -1550,6 +1498,9 @@ ao_config_get(void); void ao_config_put(void); +void +ao_config_set_radio(void); + void ao_config_init(void); @@ -1932,6 +1883,14 @@ ao_sqrt(uint32_t op); * 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_ms5607.c + */ + +void ao_ms5607_init(void); #endif /* _AO_H_ */