From d1e81db87ce0f89fd0b7651ca00979498cd00b78 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 4 Sep 2011 08:48:05 -0700 Subject: altos: Delay restart of RDF at apogee Instead of immediately trying to send RDF at apogee, start it after the usual RDF interval to avoid doing RDF while firing the apogee igniter. Signed-off-by: Keith Packard --- src/ao_telemetry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/ao_telemetry.c b/src/ao_telemetry.c index c7338a58..d006aa59 100644 --- a/src/ao_telemetry.c +++ b/src/ao_telemetry.c @@ -258,7 +258,7 @@ ao_rdf_set(uint8_t rdf) if (rdf == 0) ao_radio_rdf_abort(); else - ao_rdf_time = ao_time(); + ao_rdf_time = ao_time() + AO_RDF_INTERVAL_TICKS; } __xdata struct ao_task ao_telemetry_task; -- cgit v1.2.3 From eaa7d7c7dd445ade7d8e3228306785f9a545b89a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 4 Sep 2011 08:49:16 -0700 Subject: altos: Silence radio while firing igniters Hold the radio mutex while firing igniters to reduce potential interactions between the two. Signed-off-by: Keith Packard --- src/ao_ignite.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/ao_ignite.c b/src/ao_ignite.c index 5238beb4..ac1d28e7 100644 --- a/src/ao_ignite.c +++ b/src/ao_ignite.c @@ -90,6 +90,7 @@ ao_igniter_status(enum ao_igniter igniter) void ao_igniter_fire(enum ao_igniter igniter) __critical { + ao_mutex_get(&ao_radio_mutex); ao_ignition[igniter].firing = 1; switch(ao_config.ignite_mode) { case AO_IGNITE_MODE_DUAL: @@ -134,6 +135,7 @@ ao_igniter_fire(enum ao_igniter igniter) __critical break; } ao_ignition[igniter].firing = 0; + ao_mutex_put(&ao_radio_mutex); } void -- cgit v1.2.3