projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bump release number to 1.6.1.1
[fw/altos]
/
src
/
drivers
/
ao_cc1120.c
diff --git
a/src/drivers/ao_cc1120.c
b/src/drivers/ao_cc1120.c
index 3ea8b7044b4cecb25f1880f5be5a3b1bbfb066cd..5b814667fccf8f18e67d9e7aec557489bfae915a 100644
(file)
--- a/
src/drivers/ao_cc1120.c
+++ b/
src/drivers/ao_cc1120.c
@@
-837,15
+837,11
@@
ao_radio_test_cmd(void)
static void
ao_radio_wait_isr(uint16_t timeout)
{
static void
ao_radio_wait_isr(uint16_t timeout)
{
- if (timeout)
- ao_alarm(timeout);
ao_arch_block_interrupts();
while (!ao_radio_wake && !ao_radio_mcu_wake && !ao_radio_abort)
ao_arch_block_interrupts();
while (!ao_radio_wake && !ao_radio_mcu_wake && !ao_radio_abort)
- if (ao_sleep
(&ao_radio_wake
))
+ if (ao_sleep
_for(&ao_radio_wake, timeout
))
ao_radio_abort = 1;
ao_arch_release_interrupts();
ao_radio_abort = 1;
ao_arch_release_interrupts();
- if (timeout)
- ao_clear_alarm();
if (ao_radio_mcu_wake)
ao_radio_check_marc_status();
}
if (ao_radio_mcu_wake)
ao_radio_check_marc_status();
}
@@
-1060,19
+1056,17
@@
ao_radio_rx_isr(void)
static uint16_t
ao_radio_rx_wait(void)
{
static uint16_t
ao_radio_rx_wait(void)
{
- ao_alarm(AO_MS_TO_TICKS(100));
ao_arch_block_interrupts();
rx_waiting = 1;
while (rx_data_cur - rx_data_consumed < AO_FEC_DECODE_BLOCK &&
!ao_radio_abort &&
!ao_radio_mcu_wake)
{
ao_arch_block_interrupts();
rx_waiting = 1;
while (rx_data_cur - rx_data_consumed < AO_FEC_DECODE_BLOCK &&
!ao_radio_abort &&
!ao_radio_mcu_wake)
{
- if (ao_sleep
(&ao_radio_wake
))
+ if (ao_sleep
_for(&ao_radio_wake, AO_MS_TO_TICKS(100)
))
ao_radio_abort = 1;
}
rx_waiting = 0;
ao_arch_release_interrupts();
ao_radio_abort = 1;
}
rx_waiting = 0;
ao_arch_release_interrupts();
- ao_clear_alarm();
if (ao_radio_abort || ao_radio_mcu_wake)
return 0;
rx_data_consumed += AO_FEC_DECODE_BLOCK;
if (ao_radio_abort || ao_radio_mcu_wake)
return 0;
rx_data_consumed += AO_FEC_DECODE_BLOCK;
@@
-1125,31
+1119,28
@@
ao_radio_recv(__xdata void *d, uint8_t size, uint8_t timeout)
ao_exti_set_mode(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN,
AO_EXTI_MODE_FALLING|AO_EXTI_PRIORITY_HIGH);
ao_exti_set_mode(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN,
AO_EXTI_MODE_FALLING|AO_EXTI_PRIORITY_HIGH);
- ao_exti_set_callback(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN, ao_radio_rx_isr);
- ao_exti_enable(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN);
-
rx_starting = 1;
rx_task_id = ao_cur_task->task_id;
rx_starting = 1;
rx_task_id = ao_cur_task->task_id;
+ ao_exti_set_callback(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN, ao_radio_rx_isr);
+ ao_exti_enable(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN);
+
ao_radio_strobe(CC1120_SRX);
ao_radio_strobe(CC1120_SRX);
- if (timeout)
- ao_alarm(timeout);
ao_arch_block_interrupts();
while (rx_starting && !ao_radio_abort) {
ao_arch_block_interrupts();
while (rx_starting && !ao_radio_abort) {
- if (ao_sleep
(&ao_radio_wake
))
+ if (ao_sleep
_for(&ao_radio_wake, timeout
))
ao_radio_abort = 1;
}
uint8_t rx_task_id_save = rx_task_id;
rx_task_id = 0;
rx_starting = 0;
ao_arch_release_interrupts();
ao_radio_abort = 1;
}
uint8_t rx_task_id_save = rx_task_id;
rx_task_id = 0;
rx_starting = 0;
ao_arch_release_interrupts();
- if (timeout)
- ao_clear_alarm();
if (ao_radio_abort) {
if (ao_radio_abort) {
+ if (rx_task_id_save == 0)
+ ao_radio_burst_read_stop();
ret = 0;
ret = 0;
- rx_task_id = 0;
goto abort;
}
goto abort;
}