summaryrefslogtreecommitdiff
path: root/src/drivers/ao_cc1120.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/ao_cc1120.c')
-rw-r--r--src/drivers/ao_cc1120.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/drivers/ao_cc1120.c b/src/drivers/ao_cc1120.c
index 63d2f955..8068740f 100644
--- a/src/drivers/ao_cc1120.c
+++ b/src/drivers/ao_cc1120.c
@@ -834,8 +834,8 @@ ao_radio_rx_isr(void)
{
uint8_t d;
- d = stm_spi2.dr;
- stm_spi2.dr = 0;
+ d = AO_CC1120_SPI.dr;
+ AO_CC1120_SPI.dr = 0;
if (rx_ignore == 0) {
if (rx_data_cur >= rx_data_count)
ao_exti_disable(AO_CC1120_INT_PORT, AO_CC1120_INT_PIN);
@@ -862,6 +862,7 @@ ao_radio_rx_wait(void)
do {
if (ao_radio_mcu_wake)
ao_radio_check_marc_status();
+ 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 &&
@@ -873,6 +874,7 @@ ao_radio_rx_wait(void)
}
rx_waiting = 0;
ao_arch_release_interrupts();
+ ao_clear_alarm();
} while (ao_radio_mcu_wake);
if (ao_radio_abort)
return 0;
@@ -922,10 +924,10 @@ ao_radio_recv(__xdata void *d, uint8_t size)
ao_radio_wake = 0;
ao_radio_mcu_wake = 0;
- stm_spi2.cr2 = 0;
+ AO_CC1120_SPI.cr2 = 0;
/* clear any RXNE */
- (void) stm_spi2.dr;
+ (void) AO_CC1120_SPI.dr;
/* Have the radio signal when the preamble quality goes high */
ao_radio_reg_write(AO_CC1120_INT_GPIO_IOCFG, CC1120_IOCFG_GPIO_CFG_PQT_REACHED);