diff options
| author | Bdale Garbee <bdale@gag.com> | 2017-12-11 21:37:48 -0700 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2017-12-11 21:37:48 -0700 | 
| commit | ea0aa97fb93e669868a6f2c49c5d4b46e7615b1f (patch) | |
| tree | f16b9a9ccd8b4a7bcde7d5cc64e6f0a52c4f3436 /src/kernel/ao_pyro.c | |
| parent | 216ea6388a75c46891dc4687a2eb0c97dc63b136 (diff) | |
| parent | 9adf8b23aac8256f230b10adcab9dd323266caaa (diff) | |
Merge branch 'master' into branch-1.8
Diffstat (limited to 'src/kernel/ao_pyro.c')
| -rw-r--r-- | src/kernel/ao_pyro.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/src/kernel/ao_pyro.c b/src/kernel/ao_pyro.c index 9543b3ef..e5c30eec 100644 --- a/src/kernel/ao_pyro.c +++ b/src/kernel/ao_pyro.c @@ -76,7 +76,7 @@ uint16_t	ao_pyro_fired;  #if PYRO_DBG  int pyro_dbg; -#define DBG(...)	do { if (pyro_dbg) printf("\t%d: ", (int) (pyro - ao_config.pyro)); printf(__VA_ARGS__); } while (0) +#define DBG(...)	do { if (pyro_dbg) { printf("\t%d: ", (int) (pyro - ao_config.pyro)); printf(__VA_ARGS__); } } while (0)  #else  #define DBG(...)  #endif @@ -239,11 +239,8 @@ ao_pyro_pins_fire(uint16_t fire)  	}  	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_config.pyro[p].fired = 1; -			ao_pyro_fired |= (1 << p); -		}  	}  	ao_delay(AO_MS_TO_TICKS(50));  } @@ -261,7 +258,7 @@ ao_pyro_check(void)  		/* Ignore igniters which have already fired  		 */ -		if (pyro->fired) +		if (ao_pyro_fired & (1 << p))  			continue;  		/* Ignore disabled igniters @@ -296,7 +293,7 @@ ao_pyro_check(void)  			 * by setting the fired bit  			 */  			if (!ao_pyro_ready(pyro)) { -				pyro->fired = 1; +				ao_pyro_fired |= (1 << p);  				continue;  			} @@ -307,8 +304,10 @@ ao_pyro_check(void)  		fire |= (1 << p);  	} -	if (fire) +	if (fire) { +		ao_pyro_fired |= fire;  		ao_pyro_pins_fire(fire); +	}  	return any_waiting;  } @@ -482,7 +481,7 @@ ao_pyro_set(void)  			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();  | 
