altos: Reset interrupt flags before TX in CC1200 driver
[fw/altos] / src / drivers / ao_cc1200.c
index a3c1cbd4f92d390d556da7e43bdf86e2bdffe1ac..930680b286722ec7bf96c0eb6a0faa886d3b515f 100644 (file)
@@ -28,8 +28,14 @@ static uint8_t ao_radio_abort;               /* radio operation should abort */
 
 int8_t ao_radio_rssi;                  /* Last received RSSI value */
 
+#ifndef CC1200_DEBUG
 #define CC1200_DEBUG           0
+#endif
+
+#ifndef CC1200_LOW_LEVEL_DEBUG
 #define CC1200_LOW_LEVEL_DEBUG 0
+#endif
+
 #define CC1200_TRACE           0
 #define CC1200_APRS_TRACE      0
 
@@ -37,7 +43,7 @@ extern const uint32_t ao_radio_cal;
 
 #define FOSC   40000000
 
-#define ao_radio_select()      ao_spi_get_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS,AO_SPI_SPEED_125kHz)
+#define ao_radio_select()      ao_spi_get_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS,AO_SPI_SPEED_FAST)
 #define ao_radio_deselect()    ao_spi_put_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS)
 #define ao_radio_spi_send(d,l) ao_spi_send((d), (l), AO_CC1200_SPI_BUS)
 #define ao_radio_spi_send_fixed(d,l) ao_spi_send_fixed((d), (l), AO_CC1200_SPI_BUS)
@@ -742,6 +748,8 @@ ao_rdf_start(uint8_t len)
 static void
 ao_radio_run(void)
 {
+       ao_radio_wake = 0;
+       ao_radio_abort = 0;
        ao_radio_start_tx();
        ao_radio_wait_isr(0);
        if (!ao_radio_wake)
@@ -858,6 +866,7 @@ ao_radio_send_aprs(ao_radio_fill_func fill)
        uint8_t started = 0;
        uint8_t fifo_space;
 
+       ao_radio_abort = 0;
        ao_radio_get(0xff);
        fifo_space = CC1200_FIFO_SIZE;
        while (!done) {