Use ao_alarm for ao_delay so it can be easily interrupted
[fw/altos] / src / ao_flight.c
index 2b062c13fbec8a0a545530015f077a5ad8b8307c..c43d0711d571b2d79a3ff41e874b066250ca5c2b 100644 (file)
@@ -360,9 +360,6 @@ ao_flight(void)
                                /* slow down the ADC sample rate */
                                ao_timer_set_adc_interval(10);
 
-                               /* Enable RDF beacon */
-                               ao_rdf_set(1);
-
                                /*
                                 * Start recording min/max accel and pres for a while
                                 * to figure out when the rocket has landed
@@ -445,6 +442,8 @@ ao_flight(void)
 
                                /* turn off the ADC capture */
                                ao_timer_set_adc_interval(0);
+                               /* Enable RDF beacon */
+                               ao_rdf_set(1);
 
                                ao_wakeup(DATA_TO_XDATA(&ao_flight_state));
                        }
@@ -459,7 +458,7 @@ ao_flight(void)
 #define AO_VEL_COUNT_TO_MS(count)      ((int16_t) ((count) / 2700))
 
 static void
-ao_flight_status(void)
+ao_flight_status(void) __reentrant
 {
        printf("STATE: %7s accel: %d speed: %d altitude: %d main: %d\n",
               ao_state_names[ao_flight_state],