Fast SPI write, added LPC812 Target
Fork of BurstSPI by
BurstSPI_LPC_8XX.cpp@15:8241b7d84ad2, 2016-12-10 (annotated)
- Committer:
- JojoS
- Date:
- Sat Dec 10 14:30:26 2016 +0000
- Revision:
- 15:8241b7d84ad2
- Parent:
- 14:83e3b8ba3f43
support for STM32F4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JojoS | 14:83e3b8ba3f43 | 1 | #if (defined(TARGET_LPC81X)) |
JojoS | 14:83e3b8ba3f43 | 2 | #include "BurstSPI.h" |
JojoS | 14:83e3b8ba3f43 | 3 | |
JojoS | 14:83e3b8ba3f43 | 4 | void BurstSPI::fastWrite(int data) { |
JojoS | 14:83e3b8ba3f43 | 5 | while (!(_spi.spi->STAT & (1 << 1))); |
JojoS | 14:83e3b8ba3f43 | 6 | |
JojoS | 14:83e3b8ba3f43 | 7 | _spi.spi->TXDAT = (data & 0xffff); |
JojoS | 14:83e3b8ba3f43 | 8 | #ifndef NO_EOT_AFTER_WRITE |
JojoS | 14:83e3b8ba3f43 | 9 | // set EOT and receive ignore flag |
JojoS | 14:83e3b8ba3f43 | 10 | _spi.spi->TXDATCTL |= ((1 << 20) | (1 << 22)); |
JojoS | 14:83e3b8ba3f43 | 11 | #else |
JojoS | 14:83e3b8ba3f43 | 12 | // EOT Flag disables SPI and sets MOSI level high. |
JojoS | 14:83e3b8ba3f43 | 13 | // This is bad for cases where MOSI is used to generate NRZ signals like in wsLib for WS2812 LED |
JojoS | 14:83e3b8ba3f43 | 14 | // set receive ignore flag |
JojoS | 14:83e3b8ba3f43 | 15 | _spi.spi->TXDATCTL |= (1 << 22); |
JojoS | 14:83e3b8ba3f43 | 16 | #endif |
JojoS | 14:83e3b8ba3f43 | 17 | } |
JojoS | 14:83e3b8ba3f43 | 18 | |
JojoS | 14:83e3b8ba3f43 | 19 | void BurstSPI::clearRX( void ) { |
JojoS | 14:83e3b8ba3f43 | 20 | //We already set receive ignore flag, so this function is never run. |
JojoS | 14:83e3b8ba3f43 | 21 | } |
JojoS | 14:83e3b8ba3f43 | 22 | |
JojoS | 14:83e3b8ba3f43 | 23 | #endif |