#include <TFT_eSPI.h>

//#define ILI9341_DRIVER

#define ILI9341_2_DRIVER
#define TFT_SDA_READ
#define TFT_INVERSION_ON

#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 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_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
#define LOAD_GFXFF  // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
// this will save ~20kbytes of FLASH
#define SMOOTH_FONT
// With an ILI9341 display 40MHz works OK, 80MHz sometimes fails
#define SPI_FREQUENCY  40000000
// Optional reduced SPI frequency for reading TFT
#define SPI_READ_FREQUENCY  20000000
// The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here:
#define SPI_TOUCH_FREQUENCY  2500000

TFT_eSPI    tft = TFT_eSPI();         // Invoke library
TFT_eSprite img = TFT_eSprite(&tft);  // Sprite class

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Hello, ESP32!");

  tft.begin();
  tft.setRotation(0);
  //tft.invertDisplay(true);
  tft.fillScreen(TFT_RED);
  delay(1000); // this speeds up the simulation
  tft.fillScreen(TFT_GREEN);
  delay(1000); // this speeds up the simulation
  tft.fillScreen(TFT_BLUE);
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10); // this speeds up the simulation
}