diff options
Diffstat (limited to 'src')
-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); /* |