summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ao.h3
-rw-r--r--src/ao_ignite.c8
-rw-r--r--src/ao_telemetrum.c7
3 files changed, 16 insertions, 2 deletions
diff --git a/src/ao.h b/src/ao.h
index bb3c80ec..0699fc2c 100644
--- a/src/ao.h
+++ b/src/ao.h
@@ -1351,6 +1351,9 @@ enum ao_igniter_status
ao_igniter_status(enum ao_igniter igniter);
void
+ao_ignite_set_pins(void);
+
+void
ao_igniter_init(void);
/*
diff --git a/src/ao_ignite.c b/src/ao_ignite.c
index 512ec622..5238beb4 100644
--- a/src/ao_ignite.c
+++ b/src/ao_ignite.c
@@ -202,11 +202,17 @@ __code struct ao_cmds ao_ignite_cmds[] = {
__xdata struct ao_task ao_igniter_task;
void
-ao_igniter_init(void)
+ao_ignite_set_pins(void)
{
AO_IGNITER_DROGUE = 0;
AO_IGNITER_MAIN = 0;
AO_IGNITER_DIR |= AO_IGNITER_DROGUE_BIT | AO_IGNITER_MAIN_BIT;
+}
+
+void
+ao_igniter_init(void)
+{
+ ao_ignite_set_pins();
ao_cmd_register(&ao_ignite_cmds[0]);
ao_add_task(&ao_igniter_task, ao_igniter, "igniter");
}
diff --git a/src/ao_telemetrum.c b/src/ao_telemetrum.c
index 4ace415c..d9ea1fc8 100644
--- a/src/ao_telemetrum.c
+++ b/src/ao_telemetrum.c
@@ -28,8 +28,13 @@ ao_set_monitor(uint8_t monitoring)
void
main(void)
{
- ao_clock_init();
+ /*
+ * Reduce the transient on the ignite pins at startup by
+ * pulling the pins low as soon as possible at power up
+ */
+ ao_ignite_set_pins();
+ ao_clock_init();
/* Turn on the red LED until the system is stable */
ao_led_init(LEDS_AVAILABLE);