#define AO_PANIC_LOG 5 /* Failing to read/write log data */
#define AO_PANIC_CMD 6 /* Too many command sets registered */
#define AO_PANIC_STDIO 7 /* Too many stdio handlers registered */
+#define AO_PANIC_REBOOT 8 /* Reboot failed */
/* Stop the operating system, beeping and blinking the reason */
void
*/
/* Our timer runs at 100Hz */
-#define AO_MS_TO_TICKS(ms) ((ms) / 10)
-#define AO_SEC_TO_TICKS(s) ((s) * 100)
+#define AO_HERTZ 100
+#define AO_MS_TO_TICKS(ms) ((ms) / (1000 / AO_HERTZ))
+#define AO_SEC_TO_TICKS(s) ((s) * AO_HERTZ)
/* Returns the current time in ticks */
uint16_t
void
ao_cmd_decimal(void);
+uint8_t
+ao_match_word(__code char *word);
+
struct ao_cmds {
char cmd;
void (*func)(void);
*/
#define AO_MAX_CALLSIGN 8
+#define AO_TELEMETRY_VERSION 1
struct ao_telemetry {
uint8_t addr;
int32_t flight_vel;
int16_t flight_pres;
int16_t ground_pres;
+ int16_t accel_plus_g;
+ int16_t accel_minus_g;
struct ao_adc adc;
struct ao_gps_data gps;
char callsign[AO_MAX_CALLSIGN];
*/
#define AO_CONFIG_MAJOR 1
-#define AO_CONFIG_MINOR 1
+#define AO_CONFIG_MINOR 2
struct ao_config {
uint8_t major;
uint8_t minor;
uint16_t main_deploy;
- int16_t accel_zero_g;
+ int16_t accel_plus_g;
uint8_t radio_channel;
char callsign[AO_MAX_CALLSIGN + 1];
uint8_t apogee_delay;
+ int16_t accel_minus_g;
};
extern __xdata struct ao_config ao_config;