diff options
| -rw-r--r-- | src/telemini-v3.0/ao_pins.h | 7 | ||||
| -rw-r--r-- | src/telemini-v3.0/ao_telemini.c | 17 | 
2 files changed, 24 insertions, 0 deletions
| diff --git a/src/telemini-v3.0/ao_pins.h b/src/telemini-v3.0/ao_pins.h index 0551e1fc..17cff2ae 100644 --- a/src/telemini-v3.0/ao_pins.h +++ b/src/telemini-v3.0/ao_pins.h @@ -67,6 +67,13 @@  #define HAS_IGNITE_REPORT	1  #define AO_SMALL_ALTITUDE_TABLE	1 +/* Use debug connector clock for recovery mode */ +#define HAS_FORCE_FREQ		1 +#define AO_RECOVERY_PORT	(&stm_gpioa) +#define AO_RECOVERY_PIN		14 +#define AO_RECOVERY_VALUE	0 +#define AO_RECOVERY_MODE	AO_EXTI_MODE_PULL_UP +  /* Beeper is on Tim1 CH3 */  #define BEEPER_CHANNEL		4  #define BEEPER_TIMER		2 diff --git a/src/telemini-v3.0/ao_telemini.c b/src/telemini-v3.0/ao_telemini.c index ecd16dd2..a50268b9 100644 --- a/src/telemini-v3.0/ao_telemini.c +++ b/src/telemini-v3.0/ao_telemini.c @@ -19,9 +19,26 @@  #include <ao.h>  #include <ao_exti.h> +static void +ao_check_recovery(void) +{ +	int	i; +	ao_enable_input(AO_RECOVERY_PORT, AO_RECOVERY_PIN, AO_RECOVERY_MODE); +	for (i = 0; i < 100; i++) +		ao_arch_nop(); +	if (ao_gpio_get(AO_RECOVERY_PORT, AO_RECOVERY_PIN, AO_RECOVERY) == AO_RECOVERY_VALUE) { +		ao_flight_force_idle = 1; +		ao_force_freq = 1; +	} +	ao_gpio_set_mode(AO_RECOVERY_PORT, AO_RECOVERY_PIN, 0); +	ao_disable_port(AO_RECOVERY_PORT); +} +  void  main(void)  { +	ao_check_recovery(); +  	ao_clock_init();  	ao_task_init();  	ao_timer_init(); | 
