summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/ao_cc1120.c12
-rw-r--r--src/drivers/ao_ms5607.c12
-rw-r--r--src/drivers/ao_radio_master.c8
3 files changed, 13 insertions, 19 deletions
diff --git a/src/drivers/ao_cc1120.c b/src/drivers/ao_cc1120.c
index 7428bead..bad313eb 100644
--- a/src/drivers/ao_cc1120.c
+++ b/src/drivers/ao_cc1120.c
@@ -469,10 +469,10 @@ ao_rdf_run(void)
{
ao_radio_start_tx();
- cli();
+ ao_arch_block_interrupts();
while (!ao_radio_wake && !ao_radio_abort)
ao_sleep(&ao_radio_wake);
- sei();
+ ao_arch_release_interrupts();
if (!ao_radio_wake)
ao_radio_idle();
ao_radio_put();
@@ -603,10 +603,10 @@ ao_radio_send(const void *d, uint8_t size)
do {
ao_radio_wake = 0;
- cli();
+ ao_arch_block_interrupts();
while (!ao_radio_wake)
ao_sleep(&ao_radio_wake);
- sei();
+ ao_arch_release_interrupts();
if (!encode_len)
break;
fifo_space = ao_radio_tx_fifo_space();
@@ -660,14 +660,14 @@ ao_radio_rx_isr(void)
static uint16_t
ao_radio_rx_wait(void)
{
- cli();
+ ao_arch_block_interrupts();
rx_waiting = 1;
while (rx_data_cur - rx_data_consumed < AO_FEC_DECODE_BLOCK &&
!ao_radio_abort) {
ao_sleep(&ao_radio_wake);
}
rx_waiting = 0;
- sei();
+ ao_arch_release_interrupts();
if (ao_radio_abort)
return 0;
rx_data_consumed += AO_FEC_DECODE_BLOCK;
diff --git a/src/drivers/ao_ms5607.c b/src/drivers/ao_ms5607.c
index ce0bcf4b..55bea563 100644
--- a/src/drivers/ao_ms5607.c
+++ b/src/drivers/ao_ms5607.c
@@ -130,7 +130,6 @@ static uint32_t
ao_ms5607_get_sample(uint8_t cmd) {
uint8_t reply[3];
uint8_t read;
- uint32_t loops;
ao_ms5607_done = 0;
@@ -142,15 +141,10 @@ ao_ms5607_get_sample(uint8_t cmd) {
#if AO_MS5607_PRIVATE_PINS
ao_spi_put(AO_MS5607_SPI_INDEX);
#endif
-// loops = 0;
- cli();
- while (!ao_ms5607_done) {
-// loops++;
+ ao_arch_block_interrupts();
+ while (!ao_ms5607_done)
ao_sleep((void *) &ao_ms5607_done);
- }
- sei();
-// if (loops > 1)
-// printf ("ms5607 loops %d\n", loops);
+ ao_arch_release_interrupts();
#if AO_MS5607_PRIVATE_PINS
stm_gpio_set(AO_MS5607_CS_PORT, AO_MS5607_CS_PIN, 1);
#else
diff --git a/src/drivers/ao_radio_master.c b/src/drivers/ao_radio_master.c
index 4a37ace0..1e0050c8 100644
--- a/src/drivers/ao_radio_master.c
+++ b/src/drivers/ao_radio_master.c
@@ -75,7 +75,7 @@ ao_radio_master_send(void)
*/
PRINTD("Waiting radio ready\n");
- cli();
+ ao_arch_block_interrupts();
ao_radio_ready = ao_gpio_get(AO_RADIO_INT_PORT,
AO_RADIO_INT_PIN, AO_RADIO_INT);
ret = 0;
@@ -84,7 +84,7 @@ ao_radio_master_send(void)
if (ret)
break;
}
- sei();
+ ao_arch_release_interrupts();
if (ret)
return 0;
@@ -99,11 +99,11 @@ ao_radio_master_send(void)
AO_RADIO_SPI_BUS);
ao_radio_master_stop();
PRINTD("waiting for send done %d\n", ao_radio_done);
- cli();
+ ao_arch_block_interrupts();
while (!ao_radio_done)
if (ao_sleep((void *) &ao_radio_done))
break;
- sei();
+ ao_arch_release_interrupts();
PRINTD ("sent, radio done %d isr_0 %d isr_1 %d\n", ao_radio_done, isr_0_count, isr_1_count);
return ao_radio_done;
}