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:
32:9cd6227dc7a6
Parent:
22:f9a37f22b9cb
--- a/Graphics/GraphicsDisplay.cpp	Fri Apr 01 06:00:02 2016 +0000
+++ b/Graphics/GraphicsDisplay.cpp	Mon May 02 22:44:05 2016 +0000
@@ -275,8 +275,6 @@
     unsigned char* zeichen;
     unsigned char z,w,v;
 
-    if ((c < firstch) || (c > lastch)) return;   // test char range
-
  /*   // read font parameter from start of array
     offset = font[0];                    // bytes / char
     hor = font[1];                       // get hor size of font
@@ -291,23 +289,30 @@
         }
     }
     window(char_x, char_y,fonthor*fontzoomhor,fontvert*fontzoomver); // char box
-    zeichen = &font[((c-firstch) * fontoffset) + 4]; // start of char bitmap
-    w = zeichen[0];                          // width of actual char
-    // construct the char into the buffer
-    for (j=0; j<fontvert; j++) {  //  vert line
-        for (v=0; v<fontzoomver; v++) { // repeat horiz line for vertical zooming
-        for (i=0; i<fonthor; i++) {   //  horz line
-            z =  zeichen[(fontbpl * i) + ((j & 0xF8) >> 3)+1];
-            b = 1 << (j & 0x07);
-            if (( z & b ) == 0x00) {
-             //   pixel(char_x+i,char_y+j,0);
-                window_pushpixel(_background, fontzoomhor); //(color, howmany)
-            } else {
-            //    pixel(char_x+i,char_y+j,1);
-                window_pushpixel(_foreground, fontzoomhor);
-            }
-        }
-        } //for each zoomed vert
+    if ((c < firstch) || (c > lastch)) {   // test char range - if not exist fill with blank
+         for (i = 0; i < fonthor*fontvert*fontzoomver;i++){
+          window_pushpixel(_background, fontzoomhor); //(color, howmany) 
+          }
+    }
+    else{
+        zeichen = &font[((c-firstch) * fontoffset) + 4]; // start of char bitmap
+        w = zeichen[0];                          // width of actual char
+        // construct the char into the buffer
+        for (j=0; j<fontvert; j++) {  //  vert line
+            for (v=0; v<fontzoomver; v++) { // repeat horiz line for vertical zooming
+              for (i=0; i<fonthor; i++) {   //  horz line
+                z =  zeichen[(fontbpl * i) + ((j & 0xF8) >> 3)+1];
+                b = 1 << (j & 0x07);
+                if (( z & b ) == 0x00) {
+                //   pixel(char_x+i,char_y+j,0);
+                    window_pushpixel(_background, fontzoomhor); //(color, howmany)
+                } else {
+                //    pixel(char_x+i,char_y+j,1);
+                    window_pushpixel(_foreground, fontzoomhor);
+                }
+              }
+            } //for each zoomed vert
+         }
     }
     if(fontprop)
     {