diff options
| -rw-r--r-- | src/cc1111/ao_radio.c | 10 | ||||
| -rw-r--r-- | src/drivers/ao_cc1200.c | 49 | ||||
| -rw-r--r-- | src/kernel/ao.h | 6 | 
3 files changed, 43 insertions, 22 deletions
diff --git a/src/cc1111/ao_radio.c b/src/cc1111/ao_radio.c index ad337fc5..166d14d5 100644 --- a/src/cc1111/ao_radio.c +++ b/src/cc1111/ao_radio.c @@ -588,13 +588,13 @@ ao_radio_rdf_abort(void)  /* Output carrier */ -static __xdata	ao_radio_test_on; +static __xdata	radio_test_on;  void  ao_radio_test(uint8_t on)  {  	if (on) { -		if (!ao_radio_test_on) { +		if (!radio_test_on) {  #if HAS_MONITOR  			ao_monitor_disable();  #endif @@ -606,13 +606,13 @@ ao_radio_test(uint8_t on)  #endif  			ao_radio_get(0xff);  			RFST = RFST_STX; -			ao_radio_test_on = 1; +			radio_test_on = 1;  		}  	} else  { -		if (ao_radio_test_on) { +		if (radio_test_on) {  			ao_radio_idle();  			ao_radio_put(); -			ao_radio_test_on = 0; +			radio_test_on = 0;  #if HAS_MONITOR  			ao_monitor_enable();  #endif diff --git a/src/drivers/ao_cc1200.c b/src/drivers/ao_cc1200.c index 1f2a3ba9..2bc99734 100644 --- a/src/drivers/ao_cc1200.c +++ b/src/drivers/ao_cc1200.c @@ -803,18 +803,12 @@ ao_radio_rdf_abort(void)  	ao_wakeup(&ao_radio_wake);  } -static void -ao_radio_test_cmd(void) +static uint8_t radio_on; + +void +ao_radio_test_on(void)  { -	uint8_t	mode = 2; -	static uint8_t 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) && !radio_on) { +	if (!radio_on) {  #if HAS_MONITOR  		ao_monitor_disable();  #endif @@ -837,12 +831,12 @@ ao_radio_test_cmd(void)  #endif  		radio_on = 1;  	} -	if (mode == 3) { -		printf ("Hit a character to stop..."); flush(); -		getchar(); -		putchar('\n'); -	} -	if ((mode & 1) && radio_on) { +} + +void +ao_radio_test_off(void) +{ +	if (radio_on) {  		ao_radio_idle();  		ao_radio_put();  		radio_on = 0; @@ -855,6 +849,27 @@ ao_radio_test_cmd(void)  	}  } +static void +ao_radio_test_cmd(void) +{ +	uint8_t	mode = 2; +	ao_cmd_white(); +	if (ao_cmd_lex_c != '\n') { +		ao_cmd_decimal(); +		mode = (uint8_t) ao_cmd_lex_u32; +	} +	mode++; +	if ((mode & 2)) +		ao_radio_test_on(); +	if (mode == 3) { +		printf ("Hit a character to stop..."); flush(); +		getchar(); +		putchar('\n'); +	} +	if ((mode & 1)) +		ao_radio_test_off(); +} +  void  ao_radio_send(const void *d, uint8_t size)  { diff --git a/src/kernel/ao.h b/src/kernel/ao.h index 50fd065f..fb41d7a9 100644 --- a/src/kernel/ao.h +++ b/src/kernel/ao.h @@ -641,6 +641,12 @@ void  ao_radio_rdf_abort(void);  void +ao_radio_test_on(void); + +void +ao_radio_test_off(void); + +void  ao_radio_init(void);  /*  | 
