X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Ftelemini-v3.0%2Fao_telemini.c;h=66f75f0ab0dc182fb523e0199aa4d0520dd374d8;hb=cdaa0d7b272505c49017f409b7c0b8e3240608f0;hp=d5fbb04e5244310ef83ea2247641f3452fa4cbf8;hpb=efdeb402d04e7f04ad4bd2764f8f1ca7270b3dff;p=fw%2Faltos diff --git a/src/telemini-v3.0/ao_telemini.c b/src/telemini-v3.0/ao_telemini.c index d5fbb04e..66f75f0a 100644 --- a/src/telemini-v3.0/ao_telemini.c +++ b/src/telemini-v3.0/ao_telemini.c @@ -1,9 +1,10 @@ /* - * Copyright © 2011 Keith Packard + * Copyright © 2017 Keith Packard * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,13 +19,28 @@ #include #include +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_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_led_init(LEDS_AVAILABLE); - ao_led_on(AO_LED_GREEN); ao_timer_init(); ao_dma_init(); @@ -33,22 +49,28 @@ main(void) ao_adc_init(); +#if HAS_BEEP ao_beep_init(); +#endif +#if HAS_SERIAL_1 + ao_serial_init(); +#endif +#if HAS_USB + ao_usb_init(); +#endif ao_cmd_init(); -// ao_ms5607_init(); + ao_ms5607_init(); ao_storage_init(); -// ao_flight_init(); -// ao_log_init(); -// ao_report_init(); -// ao_telemetry_init(); + ao_flight_init(); + ao_log_init(); + ao_report_init(); + ao_telemetry_init(); ao_radio_init(); - ao_packet_slave_init(TRUE); -// ao_igniter_init(); + ao_packet_slave_init(true); + ao_igniter_init(); ao_config_init(); - ao_flight_force_idle = TRUE; - ao_start_scheduler(); }