Fast SPI write, added LPC812 Target

Dependents:   wsDrive

Fork of BurstSPI by Erik -

Revision:
15:8241b7d84ad2
Parent:
13:bc069279eb37
--- a/BurstSPI_STM32F4.cpp	Sun Oct 09 16:48:17 2016 +0000
+++ b/BurstSPI_STM32F4.cpp	Sat Dec 10 14:30:26 2016 +0000
@@ -1,9 +1,14 @@
 #if defined(TARGET_STM32F4)
 #include "BurstSPI.h"
- 
+
+#if DEVICE_SPI_ASYNCH
+    #define SPI_INST(obj)    ((SPI_TypeDef *)((obj)->spi.spi))
+#else
+    #define SPI_INST(obj)    ((SPI_TypeDef *)((obj)->spi))
+#endif 
+
 void BurstSPI::fastWrite(int data) {
-    
-    SPI_TypeDef *spi = (SPI_TypeDef *)(_spi.spi);
+    SPI_TypeDef *spi = SPI_INST(&_spi);     
     // Check if data is transmitted
     while ((spi->SR & SPI_SR_TXE) == 0);
     spi->DR = data;
@@ -11,7 +16,7 @@
     
 void BurstSPI::clearRX( void ) {
     //Check if the RX buffer is busy
-    SPI_TypeDef *spi = (SPI_TypeDef *)(_spi.spi);
+    SPI_TypeDef *spi = SPI_INST(&_spi);     
     //While busy, keep checking
     while (spi->SR & SPI_SR_BSY){   
         // Check RX buffer readable