Fast! Install BurstSPI library! https://os.mbed.com/users/peekpt/code/BurstSPI/ New display (greentab2 blue module compact).
Revision 8:66c5dc727281, committed 2020-04-24
- Comitter:
- peekpt
- Date:
- Fri Apr 24 11:14:56 2020 +0000
- Parent:
- 7:856a3443f68d
- Commit message:
- ADDED BURST SPI
Changed in this revision
Adafruit_ST7735.cpp | Show annotated file Show diff for this revision Revisions of this file |
Adafruit_ST7735.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Adafruit_ST7735.cpp Mon Apr 20 18:17:52 2020 +0000 +++ b/Adafruit_ST7735.cpp Fri Apr 24 11:14:56 2020 +0000 @@ -17,6 +17,7 @@ ****************************************************/ // + GREENTAB2 display +// BurstSPI #include "Adafruit_ST7735.h" @@ -36,14 +37,16 @@ _rs = 0; _cs = 0; - lcdPort.write(c); + lcdPort.fastWrite(c); + lcdPort.clearRX(); _cs = 1; } void Adafruit_ST7735::writedata(uint8_t c) { _rs = 1; _cs = 0; - lcdPort.write(c); + lcdPort.fastWrite(c); + lcdPort.clearRX(); _cs = 1; } @@ -300,8 +303,11 @@ _cs = 1; // use default SPI format - lcdPort.format(8, 0); - lcdPort.frequency(20000000); + + // lcdPort.format(8, 0); + // lcdPort.frequency(4000000); + + lcdPort.setFormat(); // toggle RST low to reset; CS low so it'll listen to us _cs = 0; @@ -371,8 +377,10 @@ _rs = 1; _cs = 0; - lcdPort.write(color >> 8); - lcdPort.write(color); + lcdPort.fastWrite(color >> 8); + lcdPort.clearRX(); + lcdPort.fastWrite(color); + lcdPort.clearRX(); _cs = 1; } @@ -385,8 +393,10 @@ _rs = 1; _cs = 0; - lcdPort.write(color >> 8); - lcdPort.write(color); + lcdPort.fastWrite(color >> 8); + lcdPort.clearRX(); + lcdPort.fastWrite(color); + lcdPort.clearRX(); _cs = 1; } @@ -404,8 +414,10 @@ _rs = 1; _cs = 0; while (h--) { - lcdPort.write(hi); - lcdPort.write(lo); + lcdPort.fastWrite(hi); + lcdPort.clearRX(); + lcdPort.fastWrite(lo); + lcdPort.clearRX(); } _cs = 1; } @@ -423,8 +435,10 @@ _rs = 1; _cs = 0; while (w--) { - lcdPort.write(hi); - lcdPort.write(lo); + lcdPort.fastWrite(hi); + lcdPort.clearRX(); + lcdPort.fastWrite(lo); + lcdPort.clearRX(); } _cs = 1; } @@ -451,8 +465,10 @@ _cs = 0; for (y = h; y > 0; y--) { for (x = w; x > 0; x--) { - lcdPort.write(hi); - lcdPort.write(lo); + lcdPort.fastWrite(hi); + lcdPort.clearRX(); + lcdPort.fastWrite(lo); + lcdPort.clearRX(); } } @@ -535,4 +551,4 @@ void Adafruit_ST7735::invertDisplay(boolean i) { writecommand(i ? ST7735_INVON : ST7735_INVOFF); -} +} \ No newline at end of file
--- a/Adafruit_ST7735.h Mon Apr 20 18:17:52 2020 +0000 +++ b/Adafruit_ST7735.h Fri Apr 24 11:14:56 2020 +0000 @@ -16,16 +16,16 @@ MIT license, all text above must be included in any redistribution ****************************************************/ - - // + GREENTAB2 display +// + GREENTAB2 display +// BurstSPI #ifndef _ADAFRUIT_ST7735H_ #define _ADAFRUIT_ST7735H_ #include "Adafruit_GFX.h" +#include "BurstSPI.h" #include "mbed.h" - #define boolean bool // some flags for initR() :( @@ -102,6 +102,7 @@ #define ST7735_MAGENTA 0xF81F #define ST7735_YELLOW 0xFFE0 #define ST7735_WHITE 0xFFFF +#define ST7735_ORANGE 0xFC00 class Adafruit_ST7735 : public Adafruit_GFX { @@ -131,10 +132,10 @@ uint8_t colstart, rowstart; // some displays need this changed - SPI lcdPort; // does SPI MOSI, MISO and SCK - DigitalOut _cs; // does SPI CE - DigitalOut _rs; // register/date select - DigitalOut _rst; // does 3310 LCD_RST + BurstSPI lcdPort; // does SPI MOSI, MISO and SCK + DigitalOut _cs; // does SPI CE + DigitalOut _rs; // register/date select + DigitalOut _rst; // does 3310 LCD_RST }; -#endif +#endif \ No newline at end of file