altos: Signal ascent using P1_2 (0 = ascent, 1 = other)
authorKeith Packard <keithp@keithp.com>
Mon, 23 May 2011 18:31:34 +0000 (11:31 -0700)
committerKeith Packard <keithp@keithp.com>
Mon, 23 May 2011 22:13:55 +0000 (16:13 -0600)
This can control an external recording device to log data only during ascent.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/ao_flight.c
src/ao_pins.h

index c6cbbf7cbaeb3e26f64bf6069e427fe864f4a561..cfecc5af5d770509d1341a63ae958d4e92550891 100644 (file)
@@ -168,6 +168,9 @@ ao_flight(void)
                                ao_wakeup(&ao_gps_data);
                                ao_wakeup(&ao_gps_tracking_data);
 #endif
+#ifdef ASCENT_PIN
+                               ASCENT_PIN = 0;
+#endif
 
                                ao_wakeup(DATA_TO_XDATA(&ao_flight_state));
                                break;
@@ -237,6 +240,9 @@ ao_flight(void)
                                /* Turn the RDF beacon back on */
                                ao_rdf_set(1);
 
+#ifdef ASCENT_PIN
+                               ASCENT_PIN = 1;
+#endif
                                /*
                                 * Start recording min/max height
                                 * to figure out when the rocket has landed
@@ -313,6 +319,11 @@ static __xdata struct ao_task      flight_task;
 void
 ao_flight_init(void)
 {
+#ifdef ASCENT_SIGNAL
+       ASCENT_SIGNAL = 1;
+       ASCENT_SIGNAL_DIR |= (1 << ASCENT_SIGNAL_PIN);
+       ASCENT_SIGNAL_SEL &= ~(1 << ASCENT_SIGNAL_PIN);
+#endif
        ao_flight_state = ao_flight_startup;
        ao_add_task(&flight_task, ao_flight, "flight");
 }
index 4a03ca508ae9ab628ce17d554ec37c7c502b6243..86389c174119f91fa5384fe2dec6653f9a803c77 100644 (file)
        #define M25_MAX_CHIPS           1
        #define HAS_ACCEL               1
        #define HAS_IGNITE              1
+
+       #define ASCENT_SIGNAL           P1_2    /* Use CS1 to signal ascent */
+       #define ASCENT_SIGNAL_DIR       P1DIR
+       #define ASCENT_SIGNAL_SEL       P1SEL
+       #define ASCENT_SIGNAL_PIN       2
 #endif
 
 #if defined(TELEDONGLE_V_0_2)