Added SPI burst mode to spi 8 bit.
Dependents: Bicycl_Computer_NUCLEO-F411RE Bicycl_Computer_NUCLEO-L476RG
Fork of UniGraphic by
Added SPI burst mode to this graphics driver. If whoever wants this rolled in to repository let me know. I replaced _spi.write(); with fastWrite(); and clearRX();
SPI8.cpp
// need to re-create SPI firmware to access SPI handle static SPI_HandleTypeDef SpiHandle; void SPI8::fastWrite(int data) { SpiHandle.Instance = SPI1; // Check if data is transmitted while ((SpiHandle.Instance->SR & SPI_SR_TXE) == 0); SpiHandle.Instance->DR = data; } void SPI8::clearRX( void ) { SpiHandle.Instance = SPI1; //Check if the RX buffer is busy //While busy, keep checking while (SpiHandle.Instance->SR & SPI_SR_BSY){ // Check RX buffer readable while ((SpiHandle.Instance->SR & SPI_SR_RXNE) == 0); int dummy = SpiHandle.Instance->DR; } }
Diff: Graphics/GraphicsDisplay.cpp
- Revision:
- 35:782de649ef6f
- Parent:
- 16:244f9563ebc1
--- a/Graphics/GraphicsDisplay.cpp Fri Apr 28 01:45:26 2017 +0000 +++ b/Graphics/GraphicsDisplay.cpp Thu Jul 20 19:32:58 2017 +0000 @@ -355,6 +355,22 @@ if(auto_up) copy_to_lcd(); } +//Draw XBitMap Files (*.xbm), exported from GIMP, +//Usage: Export from GIMP to *.xbm, rename *.xbm to *.c and open in editor. +//C Array can be directly used with this function +void GraphicsDisplay::drawXBitmap(int16_t x, int16_t y,const uint8_t *bitmap, int16_t w, int16_t h,uint16_t color) { + int16_t i, j, byteWidth = (w + 7) >> 3; + window(x, y, w, h); + + for (j=0; j<h; j++) { + for (i=0; i<w; i++ ) { + if (*(bitmap + j * byteWidth + (i >> 3)) & (1 << (i & 7))) { + pixel(x+i, y+j, color); + } + } + } +} + // local filesystem is not implemented in kinetis board , but you can add a SD card // fixme this whole functions needs testing and speedup int GraphicsDisplay::BMP_16(int x, int y, const char *Name_BMP)