projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add Mini logging format. Use in EasyMini
[fw/altos]
/
src
/
cc1111
/
ao_spi.c
diff --git
a/src/cc1111/ao_spi.c
b/src/cc1111/ao_spi.c
index 2b4fd186aa843b0435100d985aece4a9b3365dd7..cdef6bda9d85948bc45ec0fd3f427068c62b4560 100644
(file)
--- a/
src/cc1111/ao_spi.c
+++ b/
src/cc1111/ao_spi.c
@@
-143,7
+143,6
@@
static __xdata uint8_t ao_spi_const;
void
ao_spi_send_bus(void __xdata *block, uint16_t len) __reentrant
{
void
ao_spi_send_bus(void __xdata *block, uint16_t len) __reentrant
{
-#if !AO_SPI_SLAVE
ao_dma_set_transfer(ao_spi_dma_in_id,
&SPI_BUF,
&ao_spi_const,
ao_dma_set_transfer(ao_spi_dma_in_id,
&SPI_BUF,
&ao_spi_const,
@@
-154,7
+153,6
@@
ao_spi_send_bus(void __xdata *block, uint16_t len) __reentrant
DMA_CFG1_SRCINC_0 |
DMA_CFG1_DESTINC_0 |
DMA_CFG1_PRIORITY_NORMAL);
DMA_CFG1_SRCINC_0 |
DMA_CFG1_DESTINC_0 |
DMA_CFG1_PRIORITY_NORMAL);
-#endif
ao_dma_set_transfer(ao_spi_dma_out_id,
block,
&SPI_BUF,
ao_dma_set_transfer(ao_spi_dma_out_id,
block,
&SPI_BUF,
@@
-166,21
+164,23
@@
ao_spi_send_bus(void __xdata *block, uint16_t len) __reentrant
DMA_CFG1_DESTINC_0 |
DMA_CFG1_PRIORITY_NORMAL);
DMA_CFG1_DESTINC_0 |
DMA_CFG1_PRIORITY_NORMAL);
-#if !AO_SPI_SLAVE
ao_dma_start(ao_spi_dma_in_id);
ao_dma_start(ao_spi_dma_in_id);
-#endif
ao_dma_start(ao_spi_dma_out_id);
ao_dma_trigger(ao_spi_dma_out_id);
ao_dma_start(ao_spi_dma_out_id);
ao_dma_trigger(ao_spi_dma_out_id);
-#if AO_SPI_SLAVE
- __critical while (!ao_spi_dma_out_done)
- ao_sleep(&ao_spi_dma_out_done);
-#else
+#if !AO_SPI_SLAVE
__critical while (!ao_spi_dma_in_done)
ao_sleep(&ao_spi_dma_in_done);
#endif
}
__critical while (!ao_spi_dma_in_done)
ao_sleep(&ao_spi_dma_in_done);
#endif
}
-
+#if AO_SPI_SLAVE
+void
+ao_spi_send_wait(void)
+{
+ __critical while (!ao_spi_dma_in_done)
+ ao_sleep(&ao_spi_dma_in_done);
+}
+#endif
/* Receive bytes over SPI.
*
/* Receive bytes over SPI.
*
@@
-221,11
+221,19
@@
ao_spi_recv_bus(void __xdata *block, uint16_t len) __reentrant
#if !AO_SPI_SLAVE
ao_dma_start(ao_spi_dma_out_id);
ao_dma_trigger(ao_spi_dma_out_id);
#if !AO_SPI_SLAVE
ao_dma_start(ao_spi_dma_out_id);
ao_dma_trigger(ao_spi_dma_out_id);
-#endif
__critical while (!ao_spi_dma_in_done)
ao_sleep(&ao_spi_dma_in_done);
__critical while (!ao_spi_dma_in_done)
ao_sleep(&ao_spi_dma_in_done);
+#endif
}
}
+#if AO_SPI_SLAVE
+void
+ao_spi_recv_wait(void)
+{
+ __critical while (!ao_spi_dma_in_done)
+ ao_sleep(&ao_spi_dma_in_done);
+}
+#endif
void
ao_spi_init(void)
void
ao_spi_init(void)