projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update Releasing with changes discovered in 1.8.3 release process
[fw/altos]
/
src
/
kernel
/
ao_pyro.c
diff --git
a/src/kernel/ao_pyro.c
b/src/kernel/ao_pyro.c
index c9920ab335cd681369ad8e78e893f8b1bd49b021..e5c30eec42da6e1504880684f773da59760bd482 100644
(file)
--- a/
src/kernel/ao_pyro.c
+++ b/
src/kernel/ao_pyro.c
@@
-75,7
+75,8
@@
uint16_t ao_pyro_fired;
#endif
#if PYRO_DBG
#endif
#if PYRO_DBG
-#define DBG(...) do { printf("\t%d: ", (int) (pyro - ao_config.pyro)); printf(__VA_ARGS__); } while (0)
+int pyro_dbg;
+#define DBG(...) do { if (pyro_dbg) { printf("\t%d: ", (int) (pyro - ao_config.pyro)); printf(__VA_ARGS__); } } while (0)
#else
#define DBG(...)
#endif
#else
#define DBG(...)
#endif
@@
-180,7
+181,7
@@
ao_pyro_ready(struct ao_pyro *pyro)
case ao_pyro_state_greater_or_equal:
if (ao_flight_state >= pyro->state_greater_or_equal)
continue;
case ao_pyro_state_greater_or_equal:
if (ao_flight_state >= pyro->state_greater_or_equal)
continue;
- DBG("state %d
>= %d\n", ao_flight_state, pyro->state_less
);
+ DBG("state %d
< %d\n", ao_flight_state, pyro->state_greater_or_equal
);
break;
default:
break;
default:
@@
-238,11
+239,8
@@
ao_pyro_pins_fire(uint16_t fire)
}
ao_delay(ao_config.pyro_time);
for (p = 0; p < AO_PYRO_NUM; p++) {
}
ao_delay(ao_config.pyro_time);
for (p = 0; p < AO_PYRO_NUM; p++) {
- if (fire & (1 << p))
{
+ if (fire & (1 << p))
ao_pyro_pin_set(p, 0);
ao_pyro_pin_set(p, 0);
- ao_config.pyro[p].fired = 1;
- ao_pyro_fired |= (1 << p);
- }
}
ao_delay(AO_MS_TO_TICKS(50));
}
}
ao_delay(AO_MS_TO_TICKS(50));
}
@@
-260,7
+258,7
@@
ao_pyro_check(void)
/* Ignore igniters which have already fired
*/
/* Ignore igniters which have already fired
*/
- if (
pyro->fired
)
+ if (
ao_pyro_fired & (1 << p)
)
continue;
/* Ignore disabled igniters
continue;
/* Ignore disabled igniters
@@
-295,7
+293,7
@@
ao_pyro_check(void)
* by setting the fired bit
*/
if (!ao_pyro_ready(pyro)) {
* by setting the fired bit
*/
if (!ao_pyro_ready(pyro)) {
-
pyro->fired = 1
;
+
ao_pyro_fired |= (1 << p)
;
continue;
}
continue;
}
@@
-306,8
+304,10
@@
ao_pyro_check(void)
fire |= (1 << p);
}
fire |= (1 << p);
}
- if (fire)
+ if (fire) {
+ ao_pyro_fired |= fire;
ao_pyro_pins_fire(fire);
ao_pyro_pins_fire(fire);
+ }
return any_waiting;
}
return any_waiting;
}
@@
-437,7
+437,7
@@
ao_pyro_show(void)
if (ao_pyro_values[v].flag & AO_PYRO_8_BIT_VALUE)
value = *((uint8_t *) ((char *) pyro + ao_pyro_values[v].offset));
else
if (ao_pyro_values[v].flag & AO_PYRO_8_BIT_VALUE)
value = *((uint8_t *) ((char *) pyro + ao_pyro_values[v].offset));
else
- value = *((int16_t *) ((char *) pyro + ao_pyro_values[v].offset));
+ value = *((int16_t *) (
void *) (
(char *) pyro + ao_pyro_values[v].offset));
printf ("%6d ", value);
} else {
printf (" ");
printf ("%6d ", value);
} else {
printf (" ");
@@
-481,7
+481,7
@@
ao_pyro_set(void)
break;
for (c = 0; c < AO_PYRO_NAME_LEN - 1; c++) {
break;
for (c = 0; c < AO_PYRO_NAME_LEN - 1; c++) {
- if (ao_cmd_is_white())
+ if (ao_cmd_is_white()
|| ao_cmd_lex_c == '\n'
)
break;
name[c] = ao_cmd_lex_c;
ao_cmd_lex();
break;
name[c] = ao_cmd_lex_c;
ao_cmd_lex();
@@
-516,7
+516,7
@@
ao_pyro_set(void)
} else {
if (negative)
ao_cmd_lex_i = -ao_cmd_lex_i;
} else {
if (negative)
ao_cmd_lex_i = -ao_cmd_lex_i;
- *((int16_t *) ((char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i;
+ *((int16_t *) (
void *) (
(char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i;
}
}
}
}
}
}