diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ao_ignite.c | 1 | ||||
| -rw-r--r-- | src/ao_radio.c | 14 | 
2 files changed, 10 insertions, 5 deletions
| diff --git a/src/ao_ignite.c b/src/ao_ignite.c index 58d340d9..f2b15dd2 100644 --- a/src/ao_ignite.c +++ b/src/ao_ignite.c @@ -101,7 +101,6 @@ void  ao_igniter(void)  {  	__xdata enum ao_ignter igniter; -	__xdata enum ao_igniter_status status;  	ao_config_get();  	for (;;) { diff --git a/src/ao_radio.c b/src/ao_radio.c index 3fb4afd7..67d5f6ba 100644 --- a/src/ao_radio.c +++ b/src/ao_radio.c @@ -432,8 +432,11 @@ ao_radio_rdf(int ms)  void  ao_radio_abort(void)  { -	ao_dma_abort(ao_radio_dma); -	ao_radio_idle(); +	/* Only abort if a task is waiting to receive data */ +	if (RFST == RFST_SRX) { +		ao_dma_abort(ao_radio_dma); +		ao_radio_idle(); +	}  }  void @@ -449,26 +452,29 @@ void  ao_radio_test(void)  {  	uint8_t	mode = 2; +	static __xdata radio_on;  	ao_cmd_white();  	if (ao_cmd_lex_c != '\n') {  		ao_cmd_decimal();  		mode = (uint8_t) ao_cmd_lex_u32;  	}  	mode++; -	if (mode & 2) { +	if ((mode & 2) && !radio_on) {  		ao_set_monitor(0);  		ao_packet_slave_stop();  		ao_radio_get();  		RFST = RFST_STX; +		radio_on = 1;  	}  	if (mode == 3) {  		printf ("Hit a character to stop..."); flush();  		getchar();  		putchar('\n');  	} -	if (mode & 1) { +	if ((mode & 1) && radio_on) {  		ao_radio_idle();  		ao_radio_put(); +		radio_on = 0;  	}  } | 
