Added SPI burst mode to spi 8 bit.

Dependents:   Bicycl_Computer_NUCLEO-F411RE Bicycl_Computer_NUCLEO-L476RG

Fork of UniGraphic by GraphicsDisplay

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;
    }
}      
Revision:
21:ae0a4eedfc90
Parent:
20:14daa48ffd4c
Child:
25:daacdcf34e52
diff -r 14daa48ffd4c -r ae0a4eedfc90 Display/TFT.cpp
--- a/Display/TFT.cpp	Mon Mar 23 14:08:04 2015 +0000
+++ b/Display/TFT.cpp	Tue Mar 31 21:14:48 2015 +0000
@@ -43,6 +43,36 @@
   //  cls();
   //  locate(0,0);
 }
+TFT::TFT(proto_t displayproto, PinName* buspins, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const int lcdsize_x, const int lcdsize_y, const char *name)
+    : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y)
+{
+    if(displayproto==BUS_8)
+    {
+        PinName pins[16];
+        for(int i=0; i<16; i++) pins[i]=NC;
+        for(int i=0; i<8; i++) pins[i]=buspins[i];
+        proto = new BUS8(pins, CS, reset, DC, WR, RD);
+    }
+    else if(displayproto==BUS_16)
+    {
+        proto = new BUS16(buspins, CS, reset, DC, WR, RD);
+    }
+    useNOP=false;
+    scrollbugfix=0;
+    mipistd=false;
+    set_orientation(0);
+    foreground(White);
+    background(Black);
+    set_auto_up(false); //we don't have framebuffer
+    topfixedareasize=0;
+    scrollareasize=0;
+    usefastwindow=false;
+    fastwindowready=false;
+    is18bit=false;
+    isBGR=false;
+  //  cls();
+  //  locate(0,0);
+}
 TFT::TFT(proto_t displayproto, int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC, const int lcdsize_x, const int lcdsize_y, const char *name)
     : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y)
 {