mirror of
https://github.com/Bodmer/TFT_eSPI.git
synced 2024-09-21 02:17:13 +00:00
parent
ce3f0e219c
commit
1c1ec8cfa3
34
TFT_Drivers/GC9A01_Defines.h
Normal file
34
TFT_Drivers/GC9A01_Defines.h
Normal file
@ -0,0 +1,34 @@
|
||||
// Change the width and height if required (defined in portrait mode)
|
||||
// or use the constructor to over-ride defaults
|
||||
#ifndef TFT_WIDTH
|
||||
#define TFT_WIDTH 240
|
||||
#endif
|
||||
#ifndef TFT_HEIGHT
|
||||
#define TFT_HEIGHT 320
|
||||
#endif
|
||||
|
||||
// Delay between some initialisation commands
|
||||
#define TFT_INIT_DELAY 0x80
|
||||
|
||||
// Generic commands used by TFT_eSPI.cpp
|
||||
#define TFT_NOP 0x00
|
||||
#define TFT_SWRST 0x01
|
||||
|
||||
#define TFT_CASET 0x2A
|
||||
#define TFT_PASET 0x2B
|
||||
#define TFT_RAMWR 0x2C
|
||||
|
||||
#define TFT_RAMRD 0x2E
|
||||
#define TFT_IDXRD 0x00 //0xDD // ILI9341 only, indexed control register read
|
||||
|
||||
#define TFT_MADCTL 0x36
|
||||
#define TFT_MAD_MY 0x80
|
||||
#define TFT_MAD_MX 0x40
|
||||
#define TFT_MAD_MV 0x20
|
||||
#define TFT_MAD_ML 0x10
|
||||
#define TFT_MAD_BGR 0x08
|
||||
#define TFT_MAD_MH 0x04
|
||||
#define TFT_MAD_RGB 0x00
|
||||
|
||||
#define TFT_INVOFF 0x20
|
||||
#define TFT_INVON 0x21
|
232
TFT_Drivers/GC9A01_Init.h
Normal file
232
TFT_Drivers/GC9A01_Init.h
Normal file
@ -0,0 +1,232 @@
|
||||
|
||||
// This is the command sequence that initialises the GC9A01 driver
|
||||
|
||||
{
|
||||
writecommand(0xEF);
|
||||
writecommand(0xEB);
|
||||
writedata(0x14);
|
||||
|
||||
writecommand(0xFE);
|
||||
writecommand(0xEF);
|
||||
|
||||
writecommand(0xEB);
|
||||
writedata(0x14);
|
||||
|
||||
writecommand(0x84);
|
||||
writedata(0x40);
|
||||
|
||||
writecommand(0x85);
|
||||
writedata(0xFF);
|
||||
|
||||
writecommand(0x86);
|
||||
writedata(0xFF);
|
||||
|
||||
writecommand(0x87);
|
||||
writedata(0xFF);
|
||||
|
||||
writecommand(0x88);
|
||||
writedata(0x0A);
|
||||
|
||||
writecommand(0x89);
|
||||
writedata(0x21);
|
||||
|
||||
writecommand(0x8A);
|
||||
writedata(0x00);
|
||||
|
||||
writecommand(0x8B);
|
||||
writedata(0x80);
|
||||
|
||||
writecommand(0x8C);
|
||||
writedata(0x01);
|
||||
|
||||
writecommand(0x8D);
|
||||
writedata(0x01);
|
||||
|
||||
writecommand(0x8E);
|
||||
writedata(0xFF);
|
||||
|
||||
writecommand(0x8F);
|
||||
writedata(0xFF);
|
||||
|
||||
writecommand(0xB6);
|
||||
writedata(0x00);
|
||||
writedata(0x20);
|
||||
|
||||
writecommand(0x3A);
|
||||
writedata(0x05);
|
||||
|
||||
writecommand(0x90);
|
||||
writedata(0x08);
|
||||
writedata(0x08);
|
||||
writedata(0x08);
|
||||
writedata(0x08);
|
||||
|
||||
writecommand(0xBD);
|
||||
writedata(0x06);
|
||||
|
||||
writecommand(0xBC);
|
||||
writedata(0x00);
|
||||
|
||||
writecommand(0xFF);
|
||||
writedata(0x60);
|
||||
writedata(0x01);
|
||||
writedata(0x04);
|
||||
|
||||
writecommand(0xC3);
|
||||
writedata(0x13);
|
||||
writecommand(0xC4);
|
||||
writedata(0x13);
|
||||
|
||||
writecommand(0xC9);
|
||||
writedata(0x22);
|
||||
|
||||
writecommand(0xBE);
|
||||
writedata(0x11);
|
||||
|
||||
writecommand(0xE1);
|
||||
writedata(0x10);
|
||||
writedata(0x0E);
|
||||
|
||||
writecommand(0xDF);
|
||||
writedata(0x21);
|
||||
writedata(0x0c);
|
||||
writedata(0x02);
|
||||
|
||||
writecommand(0xF0);
|
||||
writedata(0x45);
|
||||
writedata(0x09);
|
||||
writedata(0x08);
|
||||
writedata(0x08);
|
||||
writedata(0x26);
|
||||
writedata(0x2A);
|
||||
|
||||
writecommand(0xF1);
|
||||
writedata(0x43);
|
||||
writedata(0x70);
|
||||
writedata(0x72);
|
||||
writedata(0x36);
|
||||
writedata(0x37);
|
||||
writedata(0x6F);
|
||||
|
||||
writecommand(0xF2);
|
||||
writedata(0x45);
|
||||
writedata(0x09);
|
||||
writedata(0x08);
|
||||
writedata(0x08);
|
||||
writedata(0x26);
|
||||
writedata(0x2A);
|
||||
|
||||
writecommand(0xF3);
|
||||
writedata(0x43);
|
||||
writedata(0x70);
|
||||
writedata(0x72);
|
||||
writedata(0x36);
|
||||
writedata(0x37);
|
||||
writedata(0x6F);
|
||||
|
||||
writecommand(0xED);
|
||||
writedata(0x1B);
|
||||
writedata(0x0B);
|
||||
|
||||
writecommand(0xAE);
|
||||
writedata(0x77);
|
||||
|
||||
writecommand(0xCD);
|
||||
writedata(0x63);
|
||||
|
||||
writecommand(0x70);
|
||||
writedata(0x07);
|
||||
writedata(0x07);
|
||||
writedata(0x04);
|
||||
writedata(0x0E);
|
||||
writedata(0x0F);
|
||||
writedata(0x09);
|
||||
writedata(0x07);
|
||||
writedata(0x08);
|
||||
writedata(0x03);
|
||||
|
||||
writecommand(0xE8);
|
||||
writedata(0x34);
|
||||
|
||||
writecommand(0x62);
|
||||
writedata(0x18);
|
||||
writedata(0x0D);
|
||||
writedata(0x71);
|
||||
writedata(0xED);
|
||||
writedata(0x70);
|
||||
writedata(0x70);
|
||||
writedata(0x18);
|
||||
writedata(0x0F);
|
||||
writedata(0x71);
|
||||
writedata(0xEF);
|
||||
writedata(0x70);
|
||||
writedata(0x70);
|
||||
|
||||
writecommand(0x63);
|
||||
writedata(0x18);
|
||||
writedata(0x11);
|
||||
writedata(0x71);
|
||||
writedata(0xF1);
|
||||
writedata(0x70);
|
||||
writedata(0x70);
|
||||
writedata(0x18);
|
||||
writedata(0x13);
|
||||
writedata(0x71);
|
||||
writedata(0xF3);
|
||||
writedata(0x70);
|
||||
writedata(0x70);
|
||||
|
||||
writecommand(0x64);
|
||||
writedata(0x28);
|
||||
writedata(0x29);
|
||||
writedata(0xF1);
|
||||
writedata(0x01);
|
||||
writedata(0xF1);
|
||||
writedata(0x00);
|
||||
writedata(0x07);
|
||||
|
||||
writecommand(0x66);
|
||||
writedata(0x3C);
|
||||
writedata(0x00);
|
||||
writedata(0xCD);
|
||||
writedata(0x67);
|
||||
writedata(0x45);
|
||||
writedata(0x45);
|
||||
writedata(0x10);
|
||||
writedata(0x00);
|
||||
writedata(0x00);
|
||||
writedata(0x00);
|
||||
|
||||
writecommand(0x67);
|
||||
writedata(0x00);
|
||||
writedata(0x3C);
|
||||
writedata(0x00);
|
||||
writedata(0x00);
|
||||
writedata(0x00);
|
||||
writedata(0x01);
|
||||
writedata(0x54);
|
||||
writedata(0x10);
|
||||
writedata(0x32);
|
||||
writedata(0x98);
|
||||
|
||||
writecommand(0x74);
|
||||
writedata(0x10);
|
||||
writedata(0x85);
|
||||
writedata(0x80);
|
||||
writedata(0x00);
|
||||
writedata(0x00);
|
||||
writedata(0x4E);
|
||||
writedata(0x00);
|
||||
|
||||
writecommand(0x98);
|
||||
writedata(0x3e);
|
||||
writedata(0x07);
|
||||
|
||||
writecommand(0x35);
|
||||
writecommand(0x21);
|
||||
|
||||
writecommand(0x11);
|
||||
delay(120);
|
||||
writecommand(0x29);
|
||||
delay(20);
|
||||
}
|
28
TFT_Drivers/GC9A01_Rotation.h
Normal file
28
TFT_Drivers/GC9A01_Rotation.h
Normal file
@ -0,0 +1,28 @@
|
||||
|
||||
// This is the command sequence that rotates the GC9A01 driver coordinate frame
|
||||
|
||||
rotation = m % 4;
|
||||
|
||||
writecommand(TFT_MADCTL);
|
||||
switch (rotation) {
|
||||
case 0: // Portrait
|
||||
writedata(TFT_MAD_BGR);
|
||||
_width = _init_width;
|
||||
_height = _init_height;
|
||||
break;
|
||||
case 1: // Landscape (Portrait + 90)
|
||||
writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR);
|
||||
_width = _init_height;
|
||||
_height = _init_width;
|
||||
break;
|
||||
case 2: // Inverter portrait
|
||||
writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR);
|
||||
_width = _init_width;
|
||||
_height = _init_height;
|
||||
break;
|
||||
case 3: // Inverted landscape
|
||||
writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR);
|
||||
_width = _init_height;
|
||||
_height = _init_width;
|
||||
break;
|
||||
}
|
@ -625,6 +625,9 @@ void TFT_eSPI::init(uint8_t tc)
|
||||
#elif defined (SSD1963_DRIVER)
|
||||
#include "TFT_Drivers/SSD1963_Init.h"
|
||||
|
||||
#elif defined (GC9A01_DRIVER)
|
||||
#include "TFT_Drivers/GC9A01_Init.h"
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef TFT_INVERSION_ON
|
||||
@ -704,6 +707,9 @@ void TFT_eSPI::setRotation(uint8_t m)
|
||||
#elif defined (SSD1963_DRIVER)
|
||||
#include "TFT_Drivers/SSD1963_Rotation.h"
|
||||
|
||||
#elif defined (GC9A01_DRIVER)
|
||||
#include "TFT_Drivers/GC9A01_Rotation.h"
|
||||
|
||||
#endif
|
||||
|
||||
delayMicroseconds(10);
|
||||
|
@ -168,6 +168,9 @@
|
||||
#elif defined (SSD1963_800BD_DRIVER)
|
||||
#include "TFT_Drivers/SSD1963_Defines.h"
|
||||
#define TFT_DRIVER 0x1963
|
||||
#elif defined (GC9A01_DRIVER)
|
||||
#include "TFT_Drivers/GC9A01_Defines.h"
|
||||
#define TFT_DRIVER 0x9A01
|
||||
// <<<<<<<<<<<<<<<<<<<<<<<< ADD NEW DRIVER HERE
|
||||
// XYZZY_init.h and XYZZY_rotation.h must also be added in TFT_eSPI.cpp
|
||||
#elif defined (XYZZY_DRIVER)
|
||||
|
26
User_Setups/Setup46_GC9A01_ESP32.h
Normal file
26
User_Setups/Setup46_GC9A01_ESP32.h
Normal file
@ -0,0 +1,26 @@
|
||||
#define GC9A01_DRIVER
|
||||
|
||||
#define TFT_MISO 19
|
||||
#define TFT_MOSI 23
|
||||
#define TFT_SCLK 18
|
||||
#define TFT_CS 15 // Chip select control pin
|
||||
#define TFT_DC 2 // Data Command control pin
|
||||
#define TFT_RST 4 // Reset pin (could connect to RST pin)
|
||||
//#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST
|
||||
|
||||
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
|
||||
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
|
||||
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
|
||||
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
|
||||
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
|
||||
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
|
||||
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
|
||||
#define SMOOTH_FONT
|
||||
|
||||
#define SPI_FREQUENCY 40000000
|
||||
|
||||
#define SPI_READ_FREQUENCY 20000000
|
||||
|
||||
#define SPI_TOUCH_FREQUENCY 2500000
|
||||
|
||||
// #define SUPPORT_TRANSACTIONS
|
Loading…
Reference in New Issue
Block a user