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:
break;
}
ao_ignition[igniter].firing = 0;
+ ao_mutex_put(&ao_radio_mutex);
}
void
__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");
}