mirror of
https://github.com/twheastasia/esp32-s3-480x800-demo.git
synced 2025-11-26 11:53:35 +08:00
first commit
This commit is contained in:
86
PDQgraphicstest/Arduino_GFX_databus.h
Normal file
86
PDQgraphicstest/Arduino_GFX_databus.h
Normal file
@@ -0,0 +1,86 @@
|
||||
// General software SPI
|
||||
// Arduino_DataBus *bus = new Arduino_SWSPI(TFT_DC, TFT_CS, 18 /* SCK */, 23 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_DataBus *bus = new Arduino_ESP32PAR16(38 /* DC */, 39 /* CS */, 37 /* WR */, 36 /* RD */,45,48,47,21,46,3,20,19,18,17,16,15,7,6,5,4);
|
||||
// hardware SPI (default DataBus, comment below block if you are not using hardware SPI)
|
||||
// #if defined(ARDUINO_ARCH_NRF52840)
|
||||
// // Arduino_DataBus *bus = new Arduino_mbedSPI(TFT_DC, TFT_CS);
|
||||
// Arduino_DataBus *bus = new Arduino_NRFXSPI(TFT_DC, TFT_CS, 13 /* SCK */, 11 /* MOSI */, 12 /* MISO */);
|
||||
// #elif defined(TARGET_RP2040)
|
||||
// Arduino_DataBus *bus = new Arduino_RPiPicoSPI(TFT_DC /* DC */, TFT_CS /* CS */, 18 /* SCK */, 19 /* MOSI */, 16 /* MISO */, spi0 /* spi */);
|
||||
// #elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32)
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32SPI(TFT_DC, TFT_CS, 18 /* SCK */, 23 /* MOSI */, GFX_NOT_DEFINED /* MISO */, VSPI /* spi_num */);
|
||||
// #elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3)
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32SPI(TFT_DC, TFT_CS, 36 /* SCK */, 35 /* MOSI */, GFX_NOT_DEFINED /* MISO */, HSPI /* spi_num */);
|
||||
// #elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32C3)
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32SPI(TFT_DC, TFT_CS, 4 /* SCK */, 6 /* MOSI */, GFX_NOT_DEFINED /* MISO */, FSPI /* spi_num */);
|
||||
// #elif defined(ESP8266)
|
||||
// Arduino_DataBus *bus = new Arduino_ESP8266SPI(TFT_DC, TFT_CS);
|
||||
// #else
|
||||
// // General hardware SPI
|
||||
// Arduino_DataBus *bus = new Arduino_HWSPI(TFT_DC, TFT_CS);
|
||||
// #endif
|
||||
|
||||
// General Software parallel 8-bit
|
||||
// Arduino_DataBus *bus = new Arduino_SWPAR8(A2 /* DC */, A3 /* CS */, A1 /* WR */, A0 /* RD */, 8 /* D0 */, 9 /* D1 */, 2 /* D2 */, 3 /* D3 */, 4 /* D4 */, 5 /* D5 */, 6 /* D6 */, 7 /* D7 */);
|
||||
|
||||
// General Software parallel 16-bit
|
||||
// Arduino_DataBus *bus = new Arduino_SWPAR16(32 /* DC */, GFX_NOT_DEFINED /* CS */, 21 /* WR */, GFX_NOT_DEFINED /* RD */, 19 /* D0 */, 23 /* D1 */, 18 /* D2 */, 5 /* D3 */, 17 /* D4 */, 16 /* D5 */, 25 /* D6 */, 26 /* D7 */, 27 /* D8 */, 14 /* D9 */, 12 /* D10 */, 13 /* D11 */, 15 /* D12 */, 2 /* D13 */, 0 /* D14 */, 4 /* D15 */);
|
||||
|
||||
// Arduino UNO / UNO R4 MINIMA / UNO R4 WIFI parallel 8-bit
|
||||
// Arduino_DataBus *bus = new Arduino_UNOPAR8();
|
||||
|
||||
// AVR PORT parallel 8-bit
|
||||
// Arduino Pro Micro port 2(PB): 17, 15, 16, 14, 8, 9, 10, 11
|
||||
// Arduino_DataBus *bus = new Arduino_AVRPAR8(4 /* DC */, 5 /* CS */, 18 /* WR */, 19 /* RD */, 2 /* PORT */);
|
||||
|
||||
// AVR PORT parallel 16-bit
|
||||
// Arduino MEGA 2560
|
||||
// port 3(PC): 37, 36, 35, 34, 33, 32, 31, 30
|
||||
// port 1(PA): 22, 23, 24, 25, 26, 27, 28, 29
|
||||
// Arduino_DataBus *bus = new Arduino_AVRPAR16(38 /* DC */, 40 /* CS */, 39 /* WR */, 43 /* RD */, 3 /* PORT LOW */, 1 /* PORT HIGH */);
|
||||
|
||||
// ESP32 parallel 8-bit
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32PAR8(TFT_DC, TFT_CS, 25 /* WR */, 32 /* RD */, 23 /* D0 */, 19 /* D1 */, 18 /* D2 */, 26 /* D3 */, 21 /* D4 */, 4 /* D5 */, 0 /* D6 */, 2 /* D7 */);
|
||||
|
||||
// ESP32 parallel 16-bit
|
||||
// Almost all GPIO 0-31 used up for 16-bit and WR, disable PSRAM to gain 16 and 17 but still no GPIOs remain for CS and RD.
|
||||
// CS connect to GND (enable); RD connect to Vcc (disable).
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32PAR16(
|
||||
// 32 /* DC */, GFX_NOT_DEFINED /* CS */, 21 /* WR */, GFX_NOT_DEFINED /* RD */,
|
||||
// 19 /* D0 */, 23 /* D1 */, 18 /* D2 */, 5 /* D3 */, 17 /* D4 */, 16 /* D5 */, 25 /* D6 */, 26 /* D7 */,
|
||||
// 27 /* D8 */, 14 /* D9 */, 12 /* D10 */, 13 /* D11 */, 15 /* D12 */, 2 /* D13 */, 0 /* D14 */, 4 /* D15 */);
|
||||
|
||||
// ESP32 QSPI
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
// 10 /* CS */, 5 /* SCK */, 14 /* D0 */, 8 /* D1 */, 0 /* D2 */, 1 /* D3 */);
|
||||
|
||||
// ESP32S2 parallel 8-bit
|
||||
// Display D0-D7 connect to GPIO 0-7
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32S2PAR8(TFT_DC, TFT_CS, 16 /* WR */, 17 /* RD */);
|
||||
|
||||
// ESP32S2 parallel 16-bit
|
||||
// Display D0-D15 connect to GPIO 0-15
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32S2PAR16(TFT_DC, TFT_CS, 16 /* WR */, 17 /* RD */);
|
||||
|
||||
// ESP32S3 i80 LCD parallel 8-bit
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32LCD8(
|
||||
// TFT_DC, TFT_CS, 16 /* WR */, 17 /* RD */,
|
||||
// 0 /* D0 */, 1 /* D1 */, 2 /* D2 */, 3 /* D3 */, 4 /* D4 */, 5 /* D5 */, 6 /* D6 */, 7 /* D7 */);
|
||||
|
||||
// ESP32S3 i80 LCD parallel 16-bit
|
||||
// Arduino_DataBus *bus = new Arduino_ESP32LCD16(
|
||||
// TFT_DC, TFT_CS, 16 /* WR */, 17 /* RD */,
|
||||
// 0 /* D0 */, 1 /* D1 */, 2 /* D2 */, 3 /* D3 */, 4 /* D4 */, 5 /* D5 */, 6 /* D6 */, 7 /* D7 */,
|
||||
// 8 /* D8 */, 9 /* D9 */, 10 /* D10 */, 11 /* D11 */, 12 /* D12 */, 13 /* D13 */, 14 /* D14 */, 15 /* D15 */);
|
||||
|
||||
// Raspberry Pi Pico parallel 8-bit
|
||||
// Display D0-D7 connect to GPIO 0-7
|
||||
// Arduino_DataBus *bus = new Arduino_RPiPicoPAR8(TFT_DC, TFT_CS, 18 /* WR */, 19 /* RD */);
|
||||
|
||||
// Raspberry Pi Pico parallel 16-bit
|
||||
// Display D0-D15 connect to GPIO 0-15
|
||||
// Arduino_DataBus *bus = new Arduino_RPiPicoPAR16(TFT_DC, TFT_CS, 18 /* WR */, 19 /* RD */);
|
||||
|
||||
// RTL8722 parallel 8-bit
|
||||
// Reduce GPIO usage: CS connect to GND (enable); RD connect to Vcc (disable); No Backlight pins.
|
||||
// Arduino_DataBus *bus = new Arduino_RTLPAR8(0 /* DC */, GFX_NOT_DEFINED /* CS */, 1 /* WR */, GFX_NOT_DEFINED /* RD */, 18 /* D0 */, 22 /* D1 */, 17 /* D2 */, 20 /* D3 */, 19 /* D4 */, 23 /* D5 */, 21 /* D6 */, 16 /* D7 */);
|
||||
787
PDQgraphicstest/Arduino_GFX_dev_device.h
Normal file
787
PDQgraphicstest/Arduino_GFX_dev_device.h
Normal file
@@ -0,0 +1,787 @@
|
||||
// #define AD35_S3
|
||||
// #define BLOCKCODELAB_ARCADE_LITE
|
||||
// #define DLC35010R // or called "Elecrow ESP Terminal with 3.5inch Parallel RGB Capacitive Touch Display (ILI9488)"
|
||||
// #define DRAGON_RADAR
|
||||
// #define ESP32_1732S019
|
||||
// #define ESP32_2424012
|
||||
// #define ESP32_2432S028
|
||||
// #define ESP32_3248S035
|
||||
// #define ESP32_4827A043 /* requires manual set bus speed to 8 mHz: gfx->begin(8000000) */
|
||||
// #define ESP32_4827A043_QSPI
|
||||
// #define ESP32_4827S043
|
||||
// #define ESP32_4848S040_86BOX_GUITION
|
||||
// #define ESP32_8048S043
|
||||
// #define ESP32_8048S070
|
||||
// #define ESP32_LCDKIT_SPI
|
||||
// #define ESP32_LCDKIT_PAR8A
|
||||
// #define ESP32_LCDKIT_PAR8B
|
||||
// #define ESP32_LCDKIT_PAR16
|
||||
// #define ESP32_S3_3_13_DISPLAY
|
||||
// #define ESP32_S3_BOX_3
|
||||
// #define ESP32_S3_EYE
|
||||
// #define ESP32_S3_RGB
|
||||
// #define ESP32_S3_RPI_DPI
|
||||
// #define ESP32S3_2_1_TP
|
||||
// #define GS_T3E // Golden Security GS-T3E
|
||||
// #define IBUBLY
|
||||
// #define JC3248W535
|
||||
// #define JC3636W518
|
||||
// #define LILYGO_T_DECK
|
||||
// #define LILYGO_T_DISPLAY
|
||||
// #define LILYGO_T_DISPLAY_S3
|
||||
// #define LILYGO_T_Display_S3_AMOLED
|
||||
// #define LILYGO_T_Display_S3_AMOLED_1_64
|
||||
// #define LILYGO_T_Display_S3_LONG
|
||||
// #define LILYGO_T_DISPLAY_S3_PRO
|
||||
// #define LILYGO_T_QT
|
||||
// #define LILYGO_T_RGB
|
||||
// #define LILYGO_T_TRACK
|
||||
// #define LILYGO_T_WATCH_2021
|
||||
// #define LILYGO_T4_S3
|
||||
// #define MAKERFABS_TFT_TOUCH_3_5
|
||||
// #define MAKERFABS_ESP32_S3_TFT_4_0
|
||||
// #define MAKERFABS_ESP32_S3_TFT_4_3_v1_3
|
||||
// #define WT32_SC01
|
||||
// #define XIAO_SAMD21_ROUND_DISPLAY
|
||||
// #define XIAO_ESP32C3_ROUND_DISPLAY
|
||||
// #define XIAO_ESP32S3_ROUND_DISPLAY
|
||||
// #define WZ8048C050 // or called "Elecrow Wizee-ESP32"
|
||||
// #define ZX2D10GE10R_V4848
|
||||
// #define ZX3D50CE02S // or called "WT32-SC01 PLUS"
|
||||
// #define ZX3D95CE01S_AR
|
||||
// #define ZX3D95CE01S_TR
|
||||
// #define ZX7D00CE01S // or called "QM Smart Panlee 7.0 inch serial screen"
|
||||
|
||||
#if defined(AD35_S3)
|
||||
#define GFX_DEV_DEVICE AD35_S3
|
||||
#include <Wire.h>
|
||||
#include <Adafruit_AW9523.h>
|
||||
Adafruit_AW9523 aw;
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
Wire.begin(6 /* SDA */, 5 /* SCL */); \
|
||||
aw.begin(0x59); \
|
||||
aw.pinMode(8, OUTPUT); /* LCD_LEDK */ \
|
||||
aw.pinMode(9, OUTPUT); /* LCD_LEDK */ \
|
||||
aw.pinMode(10, OUTPUT); /* LCD_LEDK */ \
|
||||
aw.pinMode(11, OUTPUT); /* LCD_LEDK */ \
|
||||
aw.pinMode(14, OUTPUT); /* LCD_RST */ \
|
||||
aw.digitalWrite(8, LOW); /* LCD_LEDK */ \
|
||||
aw.digitalWrite(9, LOW); /* LCD_LEDK */ \
|
||||
aw.digitalWrite(10, LOW); /* LCD_LEDK */ \
|
||||
aw.digitalWrite(11, LOW); /* LCD_LEDK */ \
|
||||
aw.digitalWrite(14, HIGH); /* LCD_RST */ \
|
||||
}
|
||||
Arduino_DataBus *bus = new Arduino_ESP32LCD8(
|
||||
45 /* DC */, GFX_NOT_DEFINED /* CS */, 10 /* WR */, GFX_NOT_DEFINED /* RD */,
|
||||
9 /* D0 */, 4 /* D1 */, 3 /* D2 */, 8 /* D3 */, 18 /* D4 */, 17 /* D5 */, 16 /* D6 */, 15 /* D7 */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7796(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(BLOCKCODELAB_ARCADE_LITE)
|
||||
#define GFX_DEV_DEVICE BLOCKCODELAB_ARCADE_LITE
|
||||
#define GFX_BL 21
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(45 /* DC */, 10 /* CS */, 12 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */, HSPI /* spi_num */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, 46 /* RST */, 3 /* rotation */, false /* IPS */);
|
||||
|
||||
#elif defined(DLC35010R)
|
||||
#define GFX_DEV_DEVICE DLC35010R
|
||||
#define GFX_BL 46
|
||||
Arduino_DataBus *bus = new Arduino_ESP32PAR16(
|
||||
45 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, 48 /* RD */,
|
||||
47 /* D0 */, 21 /* D1 */, 14 /* D2 */, 13 /* D3 */, 12 /* D4 */, 11 /* D5 */, 10 /* D6 */, 9 /* D7 */,
|
||||
3 /* D8 */, 8 /* D9 */, 16 /* D10 */, 15 /* D11 */, 7 /* D12 */, 6 /* D13 */, 5 /* D14 */, 4 /* D15 */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9488(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
#elif defined(DRAGON_RADAR)
|
||||
#define GFX_DEV_DEVICE DRAGON_RADAR
|
||||
#define GFX_BL 38
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 39 /* CS */,
|
||||
48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
11 /* R0 */, 12 /* R1 */, 13 /* R2 */, 45 /* R3 */, 0 /* R4 */,
|
||||
8 /* G0 */, 19 /* G1 */, 20 /* G2 */, 46 /* G3 */, 9 /* G4 */, 10 /* G5 */,
|
||||
4 /* B0 */, 5 /* B1 */, 6 /* B2 */, 7 /* B3 */, 15 /* B4 */,
|
||||
1 /* hsync_polarity */, 50 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 20 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type6_init_operations, sizeof(st7701_type6_init_operations));
|
||||
|
||||
#elif defined(ESP32_1732S019)
|
||||
#define GFX_DEV_DEVICE ESP32_1732S019
|
||||
#define GFX_BL 14
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(11 /* DC */, 10 /* CS */, 12 /* SCK */, 13 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, 1 /* RST */, 0 /* rotation */, true /* IPS */, 170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */, 35 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
|
||||
#elif defined(ESP32_2424012)
|
||||
#define GFX_DEV_DEVICE ESP32_2424012
|
||||
#define GFX_BL 8
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(2 /* DC */, 10 /* CS */, 6 /* SCK */, 7 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(ESP32_2432S028)
|
||||
#define GFX_DEV_DEVICE ESP32_2432S028
|
||||
#define GFX_BL 21
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(2 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, 12 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_3248S035)
|
||||
#define GFX_DEV_DEVICE ESP32_3248S035
|
||||
#define GFX_BL 27
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(2 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, 12 /* MISO */, VSPI /* spi_num */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7796(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_4827A043)
|
||||
#define GFX_DEV_DEVICE ESP32_4827A043
|
||||
#define GFX_BL 2
|
||||
Arduino_DataBus *bus = new Arduino_ESP32LCD16(
|
||||
48 /* DC */, 45 /* CS */, 47 /* WR */, 21 /* RD */,
|
||||
5 /* D0 */, 6 /* D1 */, 7 /* D2 */, 15 /* D3 */, 16 /* D4 */, 4 /* D5 */, 8 /* D6 */, 3 /* D7 */,
|
||||
46 /* D8 */, 9 /* D9 */, 1 /* D10 */, 42 /* D11 */, 39 /* D12 */, 41 /* D13 */, 40 /* D14 */, 14 /* D15 */);
|
||||
Arduino_GFX *gfx = new Arduino_NV3041A(bus, 17 /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(ESP32_4827A043_QSPI)
|
||||
#define GFX_DEV_DEVICE ESP32_4827A043_QSPI
|
||||
#define GFX_BL 1
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
45 /* CS */, 47 /* SCK */, 21 /* D0 */, 48 /* D1 */, 40 /* D2 */, 39 /* D3 */);
|
||||
Arduino_GFX *gfx = new Arduino_NV3041A(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(ESP32_4827S043)
|
||||
#define GFX_DEV_DEVICE ESP32_4827S043
|
||||
#define GFX_BL 2
|
||||
#define RGB_PANEL
|
||||
// option 1:
|
||||
// Uncomment for ILI6485 LCD 480x272
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
|
||||
45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
|
||||
5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
|
||||
8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
|
||||
0 /* hsync_polarity */, 1 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 43 /* hsync_back_porch */,
|
||||
0 /* vsync_polarity */, 3 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 12 /* vsync_back_porch */,
|
||||
1 /* pclk_active_neg */, 10000000 /* prefer_speed */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 272 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
// option 2:
|
||||
// Uncomment for ST7262 IPS LCD 800x480
|
||||
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
// 40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
|
||||
// 45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
|
||||
// 5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
|
||||
// 8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
|
||||
// 0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 8 /* hsync_back_porch */,
|
||||
// 0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 8 /* vsync_back_porch */,
|
||||
// 1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
|
||||
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
// 800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
// option 3:
|
||||
// Uncomment for RPi DPI 1024x600
|
||||
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
// 40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
|
||||
// 45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
|
||||
// 5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
|
||||
// 8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
|
||||
// 0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 43 /* hsync_back_porch */,
|
||||
// 0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 12 /* vsync_back_porch */,
|
||||
// 1 /* pclk_active_neg */, 9000000 /* prefer_speed */);
|
||||
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
// 1024 /* width */, 600 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
/* 4.0" 86BOX from GUITION ESP32-4848S040 display */
|
||||
#elif defined(ESP32_4848S040_86BOX_GUITION)
|
||||
#define GFX_DEV_DEVICE ESP32_4848S040_86BOX_GUITION
|
||||
#define GFX_BL 38
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 39 /* CS */,
|
||||
48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
11 /* R0 */, 12 /* R1 */, 13 /* R2 */, 14 /* R3 */, 0 /* R4 */,
|
||||
8 /* G0 */, 20 /* G1 */, 3 /* G2 */, 46 /* G3 */, 9 /* G4 */, 10 /* G5 */,
|
||||
4 /* B0 */, 5 /* B1 */, 6 /* B2 */, 7 /* B3 */, 15 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 1 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type9_init_operations, sizeof(st7701_type9_init_operations));
|
||||
|
||||
#elif defined(ESP32_8048S043)
|
||||
#define GFX_DEV_DEVICE ESP32_8048S043
|
||||
#define GFX_BL 2
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
|
||||
45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
|
||||
5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
|
||||
8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
|
||||
0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 8 /* hsync_back_porch */,
|
||||
0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 8 /* vsync_back_porch */,
|
||||
1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
#elif defined(ESP32_8048S070)
|
||||
#define GFX_DEV_DEVICE ESP32_8048S070
|
||||
#define GFX_BL 2
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
41 /* DE */, 40 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
|
||||
14 /* R0 */, 21 /* R1 */, 47 /* R2 */, 48 /* R3 */, 45 /* R4 */,
|
||||
9 /* G0 */, 46 /* G1 */, 3 /* G2 */, 8 /* G3 */, 16 /* G4 */, 1 /* G5 */,
|
||||
15 /* B0 */, 7 /* B1 */, 6 /* B2 */, 5 /* B3 */, 4 /* B4 */,
|
||||
0 /* hsync_polarity */, 180 /* hsync_front_porch */, 30 /* hsync_pulse_width */, 16 /* hsync_back_porch */,
|
||||
0 /* vsync_polarity */, 12 /* vsync_front_porch */, 13 /* vsync_pulse_width */, 10 /* vsync_back_porch */,
|
||||
1 /* pclk_active_neg */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
#elif defined(ESP32_LCDKIT_SPI)
|
||||
#define GFX_DEV_DEVICE ESP32_LCDKIT_SPI
|
||||
#define GFX_BL 23
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(19 /* DC */, 5 /* CS */, 22 /* SCK */, 21 /* MOSI */, 27 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, 18 /* RST */, 1 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_LCDKIT_PAR8A)
|
||||
#define GFX_DEV_DEVICE ESP32_LCDKIT_PAR8A
|
||||
Arduino_DataBus *bus = new Arduino_ESP32PAR8(5 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, GFX_NOT_DEFINED /* RD */, 19 /* D0 */, 21 /* D1 */, 0 /* D2 */, 22 /* D3 */, 23 /* D4 */, 33 /* D5 */, 32 /* D6 */, 27 /* D7 */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_LCDKIT_PAR8B)
|
||||
#define GFX_DEV_DEVICE ESP32_LCDKIT_PAR8B
|
||||
Arduino_DataBus *bus = new Arduino_ESP32PAR8(5 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, GFX_NOT_DEFINED /* RD */, 25 /* D0 */, 26 /* D1 */, 12 /* D2 */, 13 /* D3 */, 14 /* D4 */, 15 /* D5 */, 2 /* D6 */, 4 /* D7 */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_LCDKIT_PAR16)
|
||||
#define GFX_DEV_DEVICE ESP32_LCDKIT_PAR16
|
||||
Arduino_DataBus *bus = new Arduino_ESP32PAR16(
|
||||
5 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, GFX_NOT_DEFINED /* RD */,
|
||||
19 /* D0 */, 21 /* D1 */, 0 /* D2 */, 22 /* D3 */, 23 /* D4 */, 33 /* D5 */, 32 /* D6 */, 27 /* D7 */,
|
||||
25 /* D8 */, 26 /* D9 */, 12 /* D10 */, 13 /* D11 */, 14 /* D12 */, 15 /* D13 */, 2 /* D14 */, 4 /* D15 */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_S3_3_13_DISPLAY)
|
||||
#define GFX_DEV_DEVICE ESP32_S3_3_13_DISPLAY
|
||||
#define GFX_BL 4
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 0 /* CS */,
|
||||
17 /* SCK */, 16 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
15 /* DE */, 5 /* VSYNC */, 6 /* HSYNC */, 7 /* PCLK */,
|
||||
19 /* R0 */, 8 /* R1 */, 18 /* R2 */, 17 /* R3 */, 16 /* R4 */,
|
||||
11 /* G0 */, 10 /* G1 */, 9 /* G2 */, 46 /* G3 */, 3 /* G4 */, 20 /* G5 */,
|
||||
47 /* B0 */, 21 /* B1 */, 14 /* B2 */, 13 /* B3 */, 12 /* B4 */,
|
||||
1 /* hsync_polarity */, 30 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 30 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 16 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 16 /* vsync_back_porch */,
|
||||
0 /* pclk_active_neg */, 16000000 /* prefer_speed */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
376 /* width */, 960 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, gc9503v_type2_init_operations, sizeof(gc9503v_type2_init_operations));
|
||||
|
||||
#elif defined(ESP32_S3_BOX_3)
|
||||
#define GFX_DEV_DEVICE ARDUINO_ESP32_S3_BOX_3
|
||||
#define GFX_BL 47
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(4 /* DC */, 5 /* CS */, 7 /* SCK */, 6 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9342(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */);
|
||||
|
||||
#elif defined(ESP32_S3_EYE)
|
||||
#define GFX_DEV_DEVICE ESP32_S3_EYE
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(3 /* camera indicator */, OUTPUT); \
|
||||
digitalWrite(3 /* camera indicator */, LOW); \
|
||||
pinMode(48 /* BACKLIGHT */, OUTPUT); \
|
||||
digitalWrite(48 /* BACKLIGHT */, LOW); \
|
||||
}
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(43 /* DC */, 44 /* CS */, 21 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 80 /* row offset 2 */);
|
||||
|
||||
#elif defined(ESP32_S3_RGB)
|
||||
#define GFX_DEV_DEVICE ESP32_S3_RGB
|
||||
#define GFX_BL 38
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 39 /* CS */,
|
||||
48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
// option 1:
|
||||
// Uncomment for 4" rect display
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
|
||||
10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
|
||||
15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));
|
||||
|
||||
// option 2:
|
||||
// Uncomment for 2.1" round display
|
||||
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
// 18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
// 4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
|
||||
// 10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
|
||||
// 15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
|
||||
// 1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
// 1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
// 480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
// bus, GFX_NOT_DEFINED /* RST */, st7701_type5_init_operations, sizeof(st7701_type5_init_operations));
|
||||
|
||||
// option 3:
|
||||
// Uncomment for 2.8" round display
|
||||
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
// 18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
// 4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
|
||||
// 10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
|
||||
// 15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
|
||||
// 1 /* hsync_polarity */, 50 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */,
|
||||
// 1 /* vsync_polarity */, 20 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */);
|
||||
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
// 480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
// bus, GFX_NOT_DEFINED /* RST */, st7701_type6_init_operations, sizeof(st7701_type6_init_operations));
|
||||
|
||||
// option 4:
|
||||
// Uncomment for 2.0" display
|
||||
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
// 18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
// 4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
|
||||
// 10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
|
||||
// 15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
|
||||
// 1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
// 1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
// 480 /* width */, 360 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
// bus, GFX_NOT_DEFINED /* RST */, st7701_type8_init_operations, sizeof(st7701_type8_init_operations));
|
||||
|
||||
// option 5:
|
||||
// Uncomment for 3.5" display
|
||||
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
// 18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
// 4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
|
||||
// 10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
|
||||
// 15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
|
||||
// 1 /* hsync_polarity */, 20 /* hsync_front_porch */, 30 /* hsync_pulse_width */, 38 /* hsync_back_porch */,
|
||||
// 1 /* vsync_polarity */, 4 /* vsync_front_porch */, 3 /* vsync_pulse_width */, 15 /* vsync_back_porch */,
|
||||
// 10 /* pclk_active_neg */, 16000000 /* prefer_speed */);
|
||||
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
// 640 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
// bus, GFX_NOT_DEFINED /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));
|
||||
|
||||
#elif defined(ESP32_S3_RPI_DPI)
|
||||
#define GFX_DEV_DEVICE ESP32_S3_RPI_DPI
|
||||
// #define GFX_BL 38
|
||||
|
||||
#define RGB_PANEL
|
||||
// e.g. Waveshare 7" RPi DPI LCD: https://www.waveshare.com/wiki/7inch_LCD_for_Pi
|
||||
// dpi_timings=1024 1 40 48 128 600 1 13 3 45 0 0 0 60 0 37000000 6
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
|
||||
10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
|
||||
15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
|
||||
1 /* hsync_polarity */, 40 /* hsync_front_porch */, 48 /* hsync_pulse_width */, 128 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 13 /* vsync_front_porch */, 3 /* vsync_pulse_width */, 45 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
1024 /* width */, 600 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
#elif defined(ESP32S3_2_1_TP)
|
||||
#define GFX_DEV_DEVICE ESP32S3_2_1_TP
|
||||
#define GFX_BL 38
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 39 /* CS */,
|
||||
48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
|
||||
4 /* R0 */, 5 /* R1 */, 6 /* R2 */, 7 /* R3 */, 15 /* R4 */,
|
||||
8 /* G0 */, 20 /* G1 */, 3 /* G2 */, 46 /* G3 */, 9 /* G4 */, 10 /* G5 */,
|
||||
11 /* B0 */, 12 /* B1 */, 13 /* B2 */, 14 /* B3 */, 0 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type5_init_operations, sizeof(st7701_type5_init_operations));
|
||||
|
||||
/* Golden Security GS-T3E */
|
||||
#elif defined(GS_T3E)
|
||||
#define GFX_DEV_DEVICE GS_T3E
|
||||
#define GFX_BL 42
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 4 /* CS */,
|
||||
15 /* SCK */, 48 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
40 /* DE */, 39 /* VSYNC */, 38 /* HSYNC */, 41 /* PCLK */,
|
||||
8 /* R0 */, 18 /* R1 */, 17 /* R2 */, 16 /* R3 */, 0 /* R4 */,
|
||||
13 /* G0 */, 12 /* G1 */, 11 /* G2 */, 10 /* G3 */, 9 /* G4 */, 3 /* G5 */,
|
||||
15 /* B0 */, 48 /* B1 */, 47 /* B2 */, 21 /* B3 */, 14 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, 4 /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));
|
||||
|
||||
#elif defined(IBUBLY)
|
||||
#define GFX_DEV_DEVICE IBUBLY
|
||||
#define GFX_BL 17 // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(8 /* DC */, 9 /* CS */, 10 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, 12 /* RST */, 1 /* rotation */, true /* IPS */, 240 /* width */, 280 /* height */, 0 /* col offset 1 */, 20 /* row offset 1 */, 0 /* col offset 2 */, 20 /* row offset 2 */);
|
||||
|
||||
#elif defined(JC3248W535)
|
||||
#define GFX_DEV_DEVICE JC3248W535
|
||||
#define GFX_BL 1
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
45 /* CS */, 47 /* SCK */, 21 /* D0 */, 48 /* D1 */, 40 /* D2 */, 39 /* D3 */);
|
||||
Arduino_GFX *g = new Arduino_AXS15231B(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, false /* IPS */, 320 /* width */, 480 /* height */);
|
||||
#define CANVAS
|
||||
Arduino_Canvas *gfx = new Arduino_Canvas(320 /* width */, 480 /* height */, g, 0 /* output_x */, 0 /* output_y */, 0 /* rotation */);
|
||||
|
||||
#elif defined(JC3636W518)
|
||||
#define GFX_DEV_DEVICE JC3636W518
|
||||
#define GFX_BL 15
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
10 /* CS */, 9 /* SCK */, 11 /* D0 */, 12 /* D1 */, 13 /* D2 */, 14 /* D3 */);
|
||||
Arduino_GFX *gfx = new Arduino_ST77916(bus, 47 /* RST */, 0 /* rotation */, true /* IPS */, 360 /* width */, 360 /* height */);
|
||||
|
||||
#elif defined(LILYGO_T_DECK)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DECK
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(9 /* TDECK_RADIO_CS */, OUTPUT); \
|
||||
digitalWrite(9 /* TDECK_RADIO_CS */, HIGH); \
|
||||
pinMode(12 /* TDECK_LCD_CS */, OUTPUT); \
|
||||
digitalWrite(12 /* TDECK_LCD_CS */, HIGH); \
|
||||
pinMode(39 /* TDECK_SDCARD_CS */, OUTPUT); \
|
||||
digitalWrite(39 /* TDECK_SDCARD_CS */, HIGH); \
|
||||
pinMode(10 /* TDECK_PERI_POWERON */, OUTPUT); \
|
||||
digitalWrite(10 /* TDECK_PERI_POWERON */, HIGH); \
|
||||
delay(500); \
|
||||
}
|
||||
#define GFX_BL 42
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(11 /* DC */, 12 /* CS */, 40 /* SCK */, 41 /* MOSI */, 38 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);
|
||||
|
||||
#elif defined(LILYGO_T_DISPLAY)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY
|
||||
#define GFX_BL 4
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(16 /* DC */, 5 /* CS */, 18 /* SCK */, 19 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, 23 /* RST */, 0 /* rotation */, true /* IPS */, 135 /* width */, 240 /* height */, 52 /* col offset 1 */, 40 /* row offset 1 */, 53 /* col offset 2 */, 40 /* row offset 2 */);
|
||||
|
||||
#elif defined(LILYGO_T_DISPLAY_S3)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(15 /* PWD */, OUTPUT); \
|
||||
digitalWrite(15 /* PWD */, HIGH); \
|
||||
}
|
||||
#define GFX_BL 38
|
||||
Arduino_DataBus *bus = new Arduino_ESP32PAR8Q(
|
||||
7 /* DC */, 6 /* CS */, 8 /* WR */, 9 /* RD */,
|
||||
39 /* D0 */, 40 /* D1 */, 41 /* D2 */, 42 /* D3 */, 45 /* D4 */, 46 /* D5 */, 47 /* D6 */, 48 /* D7 */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, 5 /* RST */, 0 /* rotation */, true /* IPS */, 170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */, 35 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
|
||||
#elif defined(LILYGO_T_Display_S3_AMOLED)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_AMOLED
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
6 /* CS */, 47 /* SCK */, 18 /* D0 */, 7 /* D1 */, 48 /* D2 */, 5 /* D3 */);
|
||||
Arduino_GFX *gfx = new Arduino_RM67162(bus, 17 /* RST */, 0 /* rotation */);
|
||||
|
||||
#elif defined(LILYGO_T_Display_S3_AMOLED_1_64)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_AMOLED_1_64
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(16 /* LCD_EN */, OUTPUT); \
|
||||
digitalWrite(16 /* LCD_EN */, HIGH); \
|
||||
}
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
10 /* CS */, 12 /* SCK */, 11 /* D0 */, 13 /* D1 */, 14 /* D2 */, 15 /* D3 */);
|
||||
Arduino_GFX *g = new Arduino_CO5300(bus, 17 /* RST */, 0 /* rotation */, false /* IPS */, 280, 456,
|
||||
20 /* col offset 1 */, 0 /* row offset 1 */, 180 /* col_offset2 */, 24 /* row_offset2 */);
|
||||
#define CANVAS
|
||||
Arduino_Canvas *gfx = new Arduino_Canvas(280 /* width */, 456 /* height */, g, 0 /* output_x */, 0 /* output_y */, 0 /* rotation */);
|
||||
|
||||
#elif defined(LILYGO_T_Display_S3_LONG)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_LONG
|
||||
#define GFX_BL 1
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
12 /* CS */, 17 /* SCK */, 13 /* D0 */, 18 /* D1 */, 21 /* D2 */, 14 /* D3 */);
|
||||
Arduino_GFX *g = new Arduino_AXS15231B(bus, 47 /* RST */, 0 /* rotation */, false /* IPS */, 180 /* width */, 640 /* height */);
|
||||
#define CANVAS
|
||||
Arduino_Canvas *gfx = new Arduino_Canvas(180 /* width */, 640 /* height */, g, 0 /* output_x */, 0 /* output_y */, 0 /* rotation */);
|
||||
|
||||
#elif defined(LILYGO_T_DISPLAY_S3_PRO)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_PRO
|
||||
#define GFX_BL 48
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(9 /* DC */, 39 /* CS */, 18 /* SCK */, 17 /* MOSI */, 8 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7796(bus, 47 /* RST */, 0 /* rotation */, true /* IPS */, 222 /* width */, 480 /* height */, 49 /* col offset 1 */, 0 /* row offset 1 */, 49 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
|
||||
#elif defined(LILYGO_T_QT)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_QT
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(10 /* BL */, OUTPUT); \
|
||||
digitalWrite(10 /* BL */, LOW); \
|
||||
}
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(6 /* DC */, 5 /* CS */, 3 /* SCK */, 2 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9107(bus, 1 /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(LILYGO_T_RGB)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_RGB
|
||||
#include <Wire.h>
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */); \
|
||||
}
|
||||
#define GFX_BL 46
|
||||
Arduino_DataBus *bus = new Arduino_XL9535SWSPI(
|
||||
8 /* SDA */, 48 /* SCL */, 2 /* XL PWD */, 3 /* XL CS */, 5 /* XL SCK */, 4 /* XL MOSI */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
45 /* DE */, 41 /* VSYNC */, 47 /* HSYNC */, 42 /* PCLK */,
|
||||
21 /* R0 */, 18 /* R1 */, 17 /* R2 */, 16 /* R3 */, 15 /* R4 */,
|
||||
14 /* G0 */, 13 /* G1 */, 12 /* G2 */, 11 /* G3 */, 10 /* G4 */, 9 /* G5 */,
|
||||
7 /* B0 */, 6 /* B1 */, 5 /* B2 */, 3 /* B3 */, 2 /* B4 */,
|
||||
1 /* hsync_polarity */, 50 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 20 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */,
|
||||
1 /* pclk_active_neg */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type4_init_operations, sizeof(st7701_type4_init_operations));
|
||||
|
||||
#elif defined(LILYGO_T_TRACK)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_TRACK
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(4 /* POWER */, OUTPUT); \
|
||||
digitalWrite(4 /* POWER */, HIGH); \
|
||||
}
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPIDMA(7 /* DC */, 9 /* CS */, 5 /* SCK */, 6 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_G *g = new Arduino_JD9613(bus, 8 /* RST */);
|
||||
#define CANVAS
|
||||
Arduino_Canvas *gfx = new Arduino_Canvas(126 /* width */, 294 /* height */, g, 0, 0, 3);
|
||||
|
||||
#elif defined(LILYGO_T_WATCH_2021)
|
||||
#define GFX_DEV_DEVICE LILYGO_T_WATCH_2021
|
||||
#define GFX_BL 21
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(19 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9A01(bus, 27 /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(LILYGO_T4_S3)
|
||||
#define GFX_DEV_DEVICE LILYGO_T4_S3
|
||||
#define DEV_DEVICE_INIT() \
|
||||
{ \
|
||||
pinMode(9 /* POWER */, OUTPUT); \
|
||||
digitalWrite(9 /* POWER */, HIGH); \
|
||||
}
|
||||
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
|
||||
11 /* CS */, 15 /* SCK */, 14 /* D0 */, 10 /* D1 */, 16 /* D2 */, 12 /* D3 */);
|
||||
Arduino_GFX *g = new Arduino_RM690B0(bus, 13 /* RST */, 0 /* rotation */, 450 /* width */, 600 /* height */, 16 /* col offset 1 */, 0 /* row offset 1 */, 16 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
#define CANVAS
|
||||
Arduino_Canvas *gfx = new Arduino_Canvas(450 /* width */, 600 /* height */, g);
|
||||
|
||||
#elif defined(MAKERFABS_TFT_TOUCH_3_5)
|
||||
#define GFX_DEV_DEVICE MAKERFABS_TFT_TOUCH_3_5
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(33 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, 12 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9488_18bit(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);
|
||||
|
||||
#elif defined(MAKERFABS_ESP32_S3_TFT_4_0)
|
||||
#define GFX_DEV_DEVICE MAKERFABS_ESP32_S3_TFT_4_0
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 1 /* CS */,
|
||||
12 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
45 /* DE */, 4 /* VSYNC */, 5 /* HSYNC */, 21 /* PCLK */,
|
||||
39 /* R0 */, 40 /* R1 */, 41 /* R2 */, 42 /* R3 */, 2 /* R4 */,
|
||||
0 /* G0 */, 9 /* G1 */, 14 /* G2 */, 47 /* G3 */, 48 /* G4 */, 3 /* G5 */,
|
||||
6 /* B0 */, 7 /* B1 */, 15 /* B2 */, 16 /* B3 */, 8 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));
|
||||
|
||||
#elif defined(MAKERFABS_ESP32_S3_TFT_4_3_v1_3)
|
||||
#define GFX_DEV_DEVICE MAKERFABS_ESP32_S3_TFT_4_3_v1_3
|
||||
#define GFX_BL 2
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
|
||||
45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
|
||||
5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
|
||||
8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
|
||||
0 /* hsync_polarity */, 40 /* hsync_front_porch */, 48 /* hsync_pulse_width */, 88 /* hsync_back_porch */,
|
||||
0 /* vsync_polarity */, 13 /* vsync_front_porch */, 3 /* vsync_pulse_width */, 32 /* vsync_back_porch */,
|
||||
1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
#elif defined(WT32_SC01)
|
||||
#define GFX_DEV_DEVICE WT32_SC01
|
||||
#define GFX_BL 23
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(21 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7796(bus, 22 /* RST */, 3 /* rotation */);
|
||||
|
||||
#elif defined(WZ8048C050)
|
||||
#define GFX_DEV_DEVICE WZ8048C050
|
||||
#define GFX_BL 2
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 0 /* PCLK */,
|
||||
45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
|
||||
5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
|
||||
8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
|
||||
0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 43 /* hsync_back_porch */,
|
||||
0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 12 /* vsync_back_porch */,
|
||||
1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
#elif defined(XIAO_SAMD21_ROUND_DISPLAY)
|
||||
#define GFX_DEV_DEVICE XIAO_SAMD21_ROUND_DISPLAY
|
||||
Arduino_DataBus *bus = new Arduino_HWSPI(3 /* DC */, 1 /* CS */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(XIAO_ESP32C3_ROUND_DISPLAY)
|
||||
#define GFX_DEV_DEVICE XIAO_ESP32C3_ROUND_DISPLAY
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(5 /* DC */, 3 /* CS */, 8 /* SCK */, 10 /* MOSI */, 9 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(XIAO_ESP32S3_ROUND_DISPLAY)
|
||||
#define GFX_DEV_DEVICE XIAO_ESP32S3_ROUND_DISPLAY
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(4 /* DC */, 2 /* CS */, 7 /* SCK */, 9 /* MOSI */, 8 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(ZX2D10GE10R_V4848)
|
||||
#define GFX_DEV_DEVICE ZX2D10GE10R_V4848
|
||||
#define GFX_BL 38
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 21 /* CS */,
|
||||
47 /* SCK */, 41 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
39 /* DE */, 48 /* VSYNC */, 40 /* HSYNC */, 45 /* PCLK */,
|
||||
10 /* R0 */, 16 /* R1 */, 9 /* R2 */, 15 /* R3 */, 46 /* R4 */,
|
||||
8 /* G0 */, 13 /* G1 */, 18 /* G2 */, 12 /* G3 */, 11 /* G4 */, 17 /* G5 */,
|
||||
47 /* B0 */, 41 /* B1 */, 0 /* B2 */, 42 /* B3 */, 14 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 10 /* hsync_pulse_width */, 10 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 14 /* vsync_front_porch */, 2 /* vsync_pulse_width */, 12 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, st7701_type7_init_operations, sizeof(st7701_type7_init_operations));
|
||||
|
||||
#elif defined(ZX3D50CE02S)
|
||||
#define GFX_DEV_DEVICE ZX3D50CE02S
|
||||
#define GFX_BL 45
|
||||
Arduino_DataBus *bus = new Arduino_ESP32LCD8(
|
||||
0 /* DC */, GFX_NOT_DEFINED /* CS */, 47 /* WR */, GFX_NOT_DEFINED /* RD */,
|
||||
9 /* D0 */, 46 /* D1 */, 3 /* D2 */, 8 /* D3 */, 18 /* D4 */, 17 /* D5 */, 16 /* D6 */, 15 /* D7 */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7796(bus, 4 /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#elif defined(ZX3D95CE01S_AR)
|
||||
#define GFX_DEV_DEVICE ZX3D95CE01S_AR
|
||||
#define GFX_BL 45
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 0 /* CS */,
|
||||
10 /* SCK */, 9 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
13 /* DE */, 12 /* VSYNC */, 11 /* HSYNC */, 14 /* PCLK */,
|
||||
2 /* R0 */, 17 /* R1 */, 16 /* R2 */, 1 /* R3 */, 15 /* R4 */,
|
||||
41 /* G0 */, 46 /* G1 */, 3 /* G2 */, 42 /* G3 */, 8 /* G4 */, 18 /* G5 */,
|
||||
10 /* B0 */, 9 /* B1 */, 40 /* B2 */, 20 /* B3 */, 19 /* B4 */,
|
||||
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, GFX_NOT_DEFINED /* RST */, gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations));
|
||||
|
||||
#elif defined(ZX3D95CE01S_TR)
|
||||
#define GFX_DEV_DEVICE ZX3D95CE01S_TR
|
||||
#define GFX_BL 5
|
||||
Arduino_DataBus *bus = new Arduino_SWSPI(
|
||||
GFX_NOT_DEFINED /* DC */, 38 /* CS */,
|
||||
45 /* SCK or SCLK */, 48 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
40 /* DE */, 41 /* VSYNC */, 42 /* HSYNC */, 39 /* PCLK */,
|
||||
18 /* R0 */, 8 /* R1 */, 3 /* R2 */, 46 /* R3 */, 10 /* R4 */,
|
||||
14 /* G0 */, 13 /* G1 */, 12 /* G2 */, 11 /* G3 */, 16 /* G4 */, 17 /* G5 */,
|
||||
45 /* B0 */, 48 /* B1 */, 47 /* B2 */, 0 /* B3 */, 21 /* B4 */,
|
||||
1 /* hsync_polarity */, 8 /* hsync_front_porch */, 10 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 8 /* vsync_front_porch */, 10 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
||||
bus, 41 /* RST */, gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations));
|
||||
|
||||
#elif defined(ZX7D00CE01S)
|
||||
#define GFX_DEV_DEVICE ZX7D00CE01S
|
||||
#define GFX_BL 45
|
||||
#define RGB_PANEL
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
39 /* DE */, 38 /* VSYNC */, 5 /* HSYNC */, 9 /* PCLK */,
|
||||
10 /* R0 */, 11 /* R1 */, 12 /* R2 */, 13 /* R3 */, 14 /* R4 */,
|
||||
21 /* G0 */, 0 /* G1 */, 46 /* G2 */, 3 /* G3 */, 8 /* G4 */, 18 /* G5 */,
|
||||
17 /* B0 */, 16 /* B1 */, 15 /* B2 */, 7 /* B3 */, 6 /* B4 */,
|
||||
0 /* hsync_polarity */, 0 /* hsync_front_porch */, 210 /* hsync_pulse_width */, 30 /* hsync_back_porch */,
|
||||
0 /* vsync_polarity */, 0 /* vsync_front_porch */, 22 /* vsync_pulse_width */, 13 /* vsync_back_porch */);
|
||||
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
|
||||
800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
|
||||
|
||||
/* Wio Terminal */
|
||||
#elif defined(ARDUINO_ARCH_SAMD) && defined(SEEED_GROVE_UI_WIRELESS)
|
||||
#define GFX_DEV_DEVICE WIO_TERMINAL
|
||||
// #define GFX_BL LCD_BACKLIGHT
|
||||
Arduino_DataBus *bus = new Arduino_HWSPI(LCD_DC /* DC */, LCD_SS_PIN /* CS */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);
|
||||
|
||||
/* ESP32-S3-BOX */
|
||||
#elif defined(ARDUINO_ESP32_S3_BOX)
|
||||
#define GFX_DEV_DEVICE ARDUINO_ESP32_S3_BOX
|
||||
#define GFX_BL 45
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(4 /* DC */, 5 /* CS */, 7 /* SCK */, 6 /* MOSI */, 0 /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9342(bus, 48 /* RST */, 0 /* rotation */);
|
||||
|
||||
/* M5Stack */
|
||||
#elif defined(ARDUINO_M5Stack_Core_ESP32) || defined(ARDUINO_M5STACK_FIRE)
|
||||
#define GFX_DEV_DEVICE ARDUINO_M5Stack_Core_ESP32
|
||||
// #define GFX_BL 32
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(27 /* DC */, 14 /* CS */, SCK, MOSI, MISO);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9342(bus, 33 /* RST */, 2 /* rotation */);
|
||||
|
||||
#elif defined(ARDUINO_M5Stack_ATOMS3)
|
||||
#define GFX_DEV_DEVICE ARDUINO_M5Stack_ATOMS3
|
||||
#define GFX_BL 16
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(33 /* DC */, 15 /* CS */, 17 /* SCK */, 21 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9107(bus, 34 /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
/* Odroid-Go */
|
||||
#elif defined(ARDUINO_ODROID_ESP32)
|
||||
#define GFX_DEV_DEVICE ARDUINO_ODROID_ESP32
|
||||
// #define GFX_BL 14
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(21 /* DC */, 5 /* CS */, SCK, MOSI, MISO);
|
||||
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 3 /* rotation */);
|
||||
// Arduino_ST7789 *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 3 /* rotation */, true /* IPS */);
|
||||
|
||||
/* LILYGO T-Watch */
|
||||
#elif defined(ARDUINO_T) || defined(ARDUINO_TWATCH_BASE) || defined(ARDUINO_TWATCH_2020_V1) || defined(ARDUINO_TWATCH_2020_V2)
|
||||
#define GFX_DEV_DEVICE ARDUINO_T_WATCH
|
||||
#define GFX_BL 12
|
||||
Arduino_DataBus *bus = new Arduino_ESP32SPI(27 /* DC */, 5 /* CS */, 18 /* SCK */, 19 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 80 /* row offset 2 */);
|
||||
|
||||
/* Waveshare RP2040-LCD-1.28 */
|
||||
#elif defined(ARDUINO_WAVESHARE_RP2040_LCD_1_28)
|
||||
#define GFX_DEV_DEVICE ARDUINO_WAVESHARE_RP2040_LCD_1_28
|
||||
#define GFX_BL 25
|
||||
Arduino_DataBus *bus = new Arduino_RPiPicoSPI(8 /* DC */, 9 /* CS */, 10 /* SCK */, 11 /* MOSI */, 12 /* MISO */, spi1 /* spi */);
|
||||
Arduino_GFX *gfx = new Arduino_GC9A01(bus, 12 /* RST */, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
#endif
|
||||
165
PDQgraphicstest/Arduino_GFX_display.h
Normal file
165
PDQgraphicstest/Arduino_GFX_display.h
Normal file
@@ -0,0 +1,165 @@
|
||||
/***************************************
|
||||
* Start of Canvas (framebuffer)
|
||||
**************************************/
|
||||
// #define CANVAS
|
||||
|
||||
// 16-bit color Canvas (240x320 resolution only works for ESP32 with PSRAM)
|
||||
// Arduino_G *output_display = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
// Arduino_GFX *gfx = new Arduino_Canvas(240 /* width */, 320 /* height */, output_display);
|
||||
|
||||
// Indexed color Canvas, mask_level: 0-2, larger mask level mean less color variation but can have faster index mapping
|
||||
// Arduino_G *output_display = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
// Arduino_GFX *gfx = new Arduino_Canvas_Indexed(240 /* width */, 320 /* height */, output_display, 0 /* output_x */, 0 /* output_y */, MAXMASKLEVEL /* mask_level */);
|
||||
|
||||
// 3-bit color Canvas, R1G1B1, 8 colors
|
||||
// Arduino_G *output_display = new Arduino_ILI9488_3bit(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);
|
||||
// Arduino_GFX *gfx = new Arduino_Canvas_3bit(480 /* width */, 320 /* height */, output_display, 0 /* output_x */, 0 /* output_y */);
|
||||
|
||||
// Mono color Canvas
|
||||
// Arduino_G *output_display = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
// Arduino_GFX *gfx = new Arduino_Canvas_Mono(240 /* width */, 320 /* height */, output_display, 0 /* output_x */, 0 /* output_y */);
|
||||
/***************************************
|
||||
* End of Canvas (framebuffer)
|
||||
**************************************/
|
||||
|
||||
// GC9A01 IPS LCD 240x240
|
||||
// Arduino_GFX *gfx = new Arduino_GC9A01(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// GC9106 IPS LCD 80x160
|
||||
// Arduino_GFX *gfx = new Arduino_GC9106(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// GC9107 IPS LCD 128x128
|
||||
// Arduino_GFX *gfx = new Arduino_GC9107(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// HX8347C IPS LCD 240x320
|
||||
// Arduino_GFX *gfx = new Arduino_HX8347C(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// HX8347D IPS LCD 240x320
|
||||
// Arduino_GFX *gfx = new Arduino_HX8347D(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// HX8352C IPS LCD 240x400
|
||||
// Arduino_GFX *gfx = new Arduino_HX8352C(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// HX8357A IPS LCD 320x480 (currently only portrait works, i.e. rotation 0 and 2)
|
||||
// Arduino_GFX *gfx = new Arduino_HX8357A(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// HX8357B IPS LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_HX8357B(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// HX8369A LCD 480x800
|
||||
// Arduino_GFX *gfx = new Arduino_HX8369A(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 480, 800, 0, 7, 0, 57);
|
||||
|
||||
// ILI9225 LCD 176x220
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9225(bus, TFT_RST);
|
||||
|
||||
// ILI9341 LCD 240x320 (default Display, comment below line if you are not using ILI9341)
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9341(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9342 LCD 320x240
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9342(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9481 parallel 8/16-bit LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9481(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9481 SPI LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9481_18bit(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9486 parallel 8/16-bit LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9486(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9486 SPI LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9486_18bit(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9488 parallel 8/16-bit LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9488(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9488 SPI LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9488_18bit(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// ILI9806 LCD 480x854
|
||||
// Arduino_GFX *gfx = new Arduino_ILI9806(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
|
||||
|
||||
// JBT6K71 LCD 240x320
|
||||
// Arduino_GFX *gfx = new Arduino_JBT6K71(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 240, 320, 0, 0, 16, 0);
|
||||
|
||||
// NT35310 LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_NT35310(bus, TFT_RST, 0 /* rotation */);
|
||||
|
||||
// NT35510 LCD 480x800
|
||||
// Arduino_GFX *gfx = new Arduino_NT35510(bus, TFT_RST, 0 /* rotation */);
|
||||
Arduino_GFX *gfx = new Arduino_NT35510(bus, 35 /* RST */, 0 /* rotation */);
|
||||
|
||||
// NT39125 LCD 240x376
|
||||
// Arduino_GFX *gfx = new Arduino_NT39125(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 240, 376, 0, 0, 0, 56);
|
||||
|
||||
// NV3041A IPS LCD
|
||||
// Arduino_GFX *gfx = new Arduino_NV3041A(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// OTM8009A LCD 480x800
|
||||
// Arduino_GFX *gfx = new Arduino_OTM8009A(bus, TFT_RST, 0 /* rotation */);
|
||||
|
||||
// R61529 IPS LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_R61529(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// SEPS525 OLED 160x128
|
||||
// Arduino_GFX *gfx = new Arduino_SEPS525(bus, TFT_RST, 0 /* rotation */);
|
||||
|
||||
// SSD1283A OLED 130x130
|
||||
// Arduino_GFX *gfx = new Arduino_SSD1283A(bus, TFT_RST, 0 /* rotation */);
|
||||
|
||||
// SSD1331 OLED 96x64
|
||||
// Arduino_GFX *gfx = new Arduino_SSD1331(bus, TFT_RST, 0 /* rotation */);
|
||||
|
||||
// SSD1351 OLED 128x128
|
||||
// Arduino_GFX *gfx = new Arduino_SSD1351(bus, TFT_RST, 0 /* rotation */);
|
||||
|
||||
// ST7735 LCD
|
||||
// 0.42" 96x54
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 96 /* width */, 54 /* height */, 16 /* col offset 1 */, 106 /* row offset 1 */, 16 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
// 0.85" 128x128
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 128 /* width */, 128 /* height */, 2 /* col offset 1 */, 1 /* row offset 1 */, 2 /* col offset 2 */, 1 /* row offset 2 */);
|
||||
// 1.8" REDTAB 128x160
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */);
|
||||
// 1.8" BLACKTAB 128x160
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 128 /* width */, 160 /* height */, 2 /* col offset 1 */, 1 /* row offset 1 */, 2 /* col offset 2 */, 1 /* row offset 2 */, false /* BGR */);
|
||||
// 1.8" GREENTAB A 128x160
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 128 /* width */, 160 /* height */, 2 /* col offset 1 */, 1 /* row offset 1 */, 2 /* col offset 2 */, 1 /* row offset 2 */);
|
||||
// 1.8" GREENTAB B 128x160
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 128 /* width */, 160 /* height */, 2 /* col offset 1 */, 3 /* row offset 1 */, 2 /* col offset 2 */, 1 /* row offset 2 */);
|
||||
// 1.8" Wide angle LCD 128x160
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 128 /* width */, 160 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 0 /* row offset 2 */, false /* BGR */);
|
||||
// 1.5" GREENTAB B 128x128
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 128 /* width */, 128 /* height */, 2 /* col offset 1 */, 3 /* row offset 1 */, 2 /* col offset 2 */, 1 /* row offset 2 */);
|
||||
// 1.5" GREENTAB C 128x128
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 128 /* width */, 128 /* height */, 0 /* col offset 1 */, 32 /* row offset 1 */);
|
||||
// 0.96" IPS LCD 80x160
|
||||
// Arduino_GFX *gfx = new Arduino_ST7735(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 80 /* width */, 160 /* height */, 26 /* col offset 1 */, 1 /* row offset 1 */, 26 /* col offset 2 */, 1 /* row offset 2 */);
|
||||
|
||||
// ST7789 LCD
|
||||
// 2.4" LCD 240x320
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */);
|
||||
// 2.4" IPS LCD 240x320
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
// 2.25" LCD 76x284
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 76 /* width */, 284 /* height */, 82 /* col offset 1 */, 18 /* row offset 1 */, 82 /* col offset 2 */, 18 /* row offset 2 */);
|
||||
// 1.9" IPS round corner LCD 170x320
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */, 35 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
// 1.69" IPS round corner LCD 240x280
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 240 /* width */, 280 /* height */, 0 /* col offset 1 */, 20 /* row offset 1 */, 0 /* col offset 2 */, 20 /* row offset 2 */);
|
||||
// 1.47" IPS round corner LCD 172x320
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 172 /* width */, 320 /* height */, 34 /* col offset 1 */, 0 /* row offset 1 */, 34 /* col offset 2 */, 0 /* row offset 2 */);
|
||||
// 1.3"/1.5" square IPS LCD 240x240
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 80 /* row offset 2 */);
|
||||
// 1.14" IPS LCD 135x240
|
||||
// Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0 /* rotation */, true /* IPS */, 135 /* width */, 240 /* height */, 52 /* col offset 1 */, 40 /* row offset 1 */, 53 /* col offset 2 */, 40 /* row offset 2 */);
|
||||
|
||||
// ST7796 LCD
|
||||
// 4" LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ST7796(bus, TFT_RST, 0 /* rotation */);
|
||||
// 4" IPS LCD 320x480
|
||||
// Arduino_GFX *gfx = new Arduino_ST7796(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
|
||||
|
||||
// WEA2012 LCD
|
||||
// #define CANVAS
|
||||
// Arduino_GFX *output_display = new Arduino_WEA2012(bus, TFT_RST);
|
||||
// Arduino_GFX *gfx = new Arduino_Canvas(356 /* width */, 400 /* height */, output_display);
|
||||
74
PDQgraphicstest/Arduino_GFX_pins.h
Normal file
74
PDQgraphicstest/Arduino_GFX_pins.h
Normal file
@@ -0,0 +1,74 @@
|
||||
#if defined(__IMXRT1052__) || defined(__IMXRT1062__)
|
||||
// PJRC Teensy 4.x
|
||||
#define TFT_CS 39 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 41
|
||||
#define TFT_RST 40
|
||||
#define GFX_BL 22
|
||||
#elif defined(ARDUINO_BLACKPILL_F411CE)
|
||||
#define TFT_CS 4 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 3
|
||||
#define TFT_RST 2
|
||||
#define GFX_BL 1
|
||||
#elif defined(TARGET_RP2040)
|
||||
#define TFT_CS 17 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 27
|
||||
#define TFT_RST 26
|
||||
#define GFX_BL 28
|
||||
#elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32)
|
||||
#define TFT_CS 5 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 27 // GFX_NOT_DEFINED for display without DC pin (9-bit SPI)
|
||||
#define TFT_RST 33
|
||||
#define GFX_BL 22
|
||||
#elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S2)
|
||||
#define TFT_CS 34 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 38
|
||||
#define TFT_RST 33
|
||||
#define GFX_BL 21
|
||||
#elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)
|
||||
#define TFT_CS 40 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 41
|
||||
#define TFT_RST 42
|
||||
#define GFX_BL 14
|
||||
#elif defined(ESP32) && (CONFIG_IDF_TARGET_ESP32C3)
|
||||
#define TFT_CS 7 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 2
|
||||
#define TFT_RST 1
|
||||
#define GFX_BL 3
|
||||
#elif defined(ESP8266)
|
||||
#define TFT_CS 15 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 4
|
||||
#define TFT_RST 2
|
||||
#define GFX_BL 5
|
||||
#elif defined(RTL8722DM)
|
||||
#if defined(BOARD_RTL8720DN_BW16)
|
||||
#define TFT_CS 9
|
||||
#define TFT_DC 8
|
||||
#define TFT_RST 6
|
||||
#define GFX_BL 3
|
||||
#elif defined(BOARD_RTL8722DM)
|
||||
#define TFT_CS 18
|
||||
#define TFT_DC 17
|
||||
#define TFT_RST 22
|
||||
#define GFX_BL 23
|
||||
#elif defined(BOARD_RTL8722DM_MINI)
|
||||
#define TFT_CS 12
|
||||
#define TFT_DC 14
|
||||
#define TFT_RST 15
|
||||
#define GFX_BL 13
|
||||
#else // old version
|
||||
#define TFT_CS 18 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 17
|
||||
#define TFT_RST 2
|
||||
#define GFX_BL 23
|
||||
#endif
|
||||
#elif defined(SEEED_XIAO_M0)
|
||||
#define TFT_CS 3 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 2
|
||||
#define TFT_RST 1
|
||||
#define GFX_BL 0
|
||||
#else
|
||||
#define TFT_CS 9 // GFX_NOT_DEFINED for display without CS pin
|
||||
#define TFT_DC 8
|
||||
#define TFT_RST 7
|
||||
#define GFX_BL 6
|
||||
#endif
|
||||
678
PDQgraphicstest/PDQgraphicstest.ino
Normal file
678
PDQgraphicstest/PDQgraphicstest.ino
Normal file
@@ -0,0 +1,678 @@
|
||||
/*
|
||||
Adapted from the Adafruit and Xark's PDQ graphicstest sketch.
|
||||
|
||||
See end of file for original header text and MIT license info.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Start of Arduino_GFX setting
|
||||
******************************************************************************/
|
||||
#include <Arduino_GFX_Library.h>
|
||||
|
||||
/* OPTION 1: Uncomment a dev device in Arduino_GFX_dev_device.h */
|
||||
#include "Arduino_GFX_dev_device.h"
|
||||
|
||||
#ifndef GFX_DEV_DEVICE
|
||||
/* OPTION 2: Manual define hardware */
|
||||
|
||||
/* Step 1: Define pins in Arduino_GFX_databus.h */
|
||||
#include "Arduino_GFX_pins.h"
|
||||
|
||||
/* Step 2: Uncomment your databus in Arduino_GFX_databus.h */
|
||||
#include "Arduino_GFX_databus.h"
|
||||
|
||||
/* Step 3: Uncomment your display driver in Arduino_GFX_display.h */
|
||||
#include "Arduino_GFX_display.h"
|
||||
|
||||
#endif /* Manual define hardware */
|
||||
/*******************************************************************************
|
||||
* End of Arduino_GFX setting
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef ESP32
|
||||
#undef F
|
||||
#define F(s) (s)
|
||||
#endif
|
||||
|
||||
int32_t w, h, n, n1, cx, cy, cx1, cy1, cn, cn1;
|
||||
uint8_t tsa, tsb, tsc, ds;
|
||||
|
||||
void setup()
|
||||
{
|
||||
#ifdef DEV_DEVICE_INIT
|
||||
DEV_DEVICE_INIT();
|
||||
#endif
|
||||
|
||||
Serial.begin(115200);
|
||||
// Serial.setDebugOutput(true);
|
||||
// while(!Serial);
|
||||
Serial.println("Arduino_GFX PDQgraphicstest example!");
|
||||
|
||||
// Init Display
|
||||
if (!gfx->begin())
|
||||
// if (!gfx->begin(80000000)) /* specify data bus speed */
|
||||
{
|
||||
Serial.println("gfx->begin() failed!");
|
||||
}
|
||||
|
||||
w = gfx->width();
|
||||
h = gfx->height();
|
||||
n = min(w, h);
|
||||
n1 = n - 1;
|
||||
cx = w / 2;
|
||||
cy = h / 2;
|
||||
cx1 = cx - 1;
|
||||
cy1 = cy - 1;
|
||||
cn = min(cx1, cy1);
|
||||
cn1 = cn - 1;
|
||||
tsa = ((w <= 176) || (h <= 160)) ? 1 : (((w <= 240) || (h <= 240)) ? 2 : 3); // text size A
|
||||
tsb = ((w <= 272) || (h <= 220)) ? 1 : 2; // text size B
|
||||
tsc = ((w <= 220) || (h <= 220)) ? 1 : 2; // text size C
|
||||
ds = (w <= 160) ? 9 : ((w <= 280) ? 10 : 12); // digit size
|
||||
|
||||
#ifdef GFX_BL
|
||||
pinMode(GFX_BL, OUTPUT);
|
||||
digitalWrite(GFX_BL, HIGH);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline uint32_t micros_start() __attribute__((always_inline));
|
||||
static inline uint32_t micros_start()
|
||||
{
|
||||
uint8_t oms = millis();
|
||||
while ((uint8_t)millis() == oms)
|
||||
;
|
||||
return micros();
|
||||
}
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
Serial.println(F("Benchmark\tmicro-secs"));
|
||||
|
||||
int32_t usecFillScreen = testFillScreen();
|
||||
serialOut(F("Screen fill\t"), usecFillScreen, 100, true);
|
||||
|
||||
int32_t usecText = testText();
|
||||
serialOut(F("Text\t"), usecText, 3000, true);
|
||||
|
||||
int32_t usecPixels = testPixels();
|
||||
serialOut(F("Pixels\t"), usecPixels, 100, true);
|
||||
|
||||
int32_t usecLines = testLines();
|
||||
serialOut(F("Lines\t"), usecLines, 100, true);
|
||||
|
||||
int32_t usecFastLines = testFastLines();
|
||||
serialOut(F("Horiz/Vert Lines\t"), usecFastLines, 100, true);
|
||||
|
||||
int32_t usecFilledRects = testFilledRects();
|
||||
serialOut(F("Rectangles (filled)\t"), usecFilledRects, 100, false);
|
||||
|
||||
int32_t usecRects = testRects();
|
||||
serialOut(F("Rectangles (outline)\t"), usecRects, 100, true);
|
||||
|
||||
int32_t usecFilledTrangles = testFilledTriangles();
|
||||
serialOut(F("Triangles (filled)\t"), usecFilledTrangles, 100, false);
|
||||
|
||||
int32_t usecTriangles = testTriangles();
|
||||
serialOut(F("Triangles (outline)\t"), usecTriangles, 100, true);
|
||||
|
||||
int32_t usecFilledCircles = testFilledCircles(10);
|
||||
serialOut(F("Circles (filled)\t"), usecFilledCircles, 100, false);
|
||||
|
||||
int32_t usecCircles = testCircles(10);
|
||||
serialOut(F("Circles (outline)\t"), usecCircles, 100, true);
|
||||
|
||||
int32_t usecFilledArcs = testFillArcs();
|
||||
serialOut(F("Arcs (filled)\t"), usecFilledArcs, 100, false);
|
||||
|
||||
int32_t usecArcs = testArcs();
|
||||
serialOut(F("Arcs (outline)\t"), usecArcs, 100, true);
|
||||
|
||||
int32_t usecFilledRoundRects = testFilledRoundRects();
|
||||
serialOut(F("Rounded rects (filled)\t"), usecFilledRoundRects, 100, false);
|
||||
|
||||
int32_t usecRoundRects = testRoundRects();
|
||||
serialOut(F("Rounded rects (outline)\t"), usecRoundRects, 100, true);
|
||||
|
||||
#ifdef CANVAS
|
||||
uint32_t start = micros_start();
|
||||
gfx->flush();
|
||||
int32_t usecFlush = micros() - start;
|
||||
serialOut(F("flush (Canvas only)\t"), usecFlush, 0, false);
|
||||
#endif
|
||||
|
||||
Serial.println(F("Done!"));
|
||||
|
||||
uint16_t c = 4;
|
||||
int8_t d = 1;
|
||||
for (int32_t i = 0; i < h; i++)
|
||||
{
|
||||
gfx->drawFastHLine(0, i, w, c);
|
||||
c += d;
|
||||
if (c <= 4 || c >= 11)
|
||||
{
|
||||
d = -d;
|
||||
}
|
||||
}
|
||||
|
||||
gfx->setCursor(0, 0);
|
||||
|
||||
gfx->setTextSize(tsa);
|
||||
gfx->setTextColor(RGB565_MAGENTA);
|
||||
gfx->println(F("Arduino GFX PDQ"));
|
||||
|
||||
if (h > w)
|
||||
{
|
||||
gfx->setTextSize(tsb);
|
||||
gfx->setTextColor(RGB565_GREEN);
|
||||
gfx->print(F("\nBenchmark "));
|
||||
gfx->setTextSize(tsc);
|
||||
if (ds == 12)
|
||||
{
|
||||
gfx->print(F(" "));
|
||||
}
|
||||
gfx->println(F("micro-secs"));
|
||||
}
|
||||
|
||||
printnice(F("Screen fill "), usecFillScreen);
|
||||
printnice(F("Text "), usecText);
|
||||
printnice(F("Pixels "), usecPixels);
|
||||
printnice(F("Lines "), usecLines);
|
||||
printnice(F("H/V Lines "), usecFastLines);
|
||||
printnice(F("Rectangles F"), usecFilledRects);
|
||||
printnice(F("Rectangles "), usecRects);
|
||||
printnice(F("Triangles F "), usecFilledTrangles);
|
||||
printnice(F("Triangles "), usecTriangles);
|
||||
printnice(F("Circles F "), usecFilledCircles);
|
||||
printnice(F("Circles "), usecCircles);
|
||||
printnice(F("Arcs F "), usecFilledArcs);
|
||||
printnice(F("Arcs "), usecArcs);
|
||||
printnice(F("RoundRects F"), usecFilledRoundRects);
|
||||
printnice(F("RoundRects "), usecRoundRects);
|
||||
|
||||
if ((h > w) || (h > 240))
|
||||
{
|
||||
gfx->setTextSize(tsc);
|
||||
gfx->setTextColor(RGB565_GREEN);
|
||||
gfx->print(F("\nBenchmark Complete!"));
|
||||
}
|
||||
|
||||
#ifdef CANVAS
|
||||
gfx->flush();
|
||||
#endif
|
||||
|
||||
delay(60 * 1000L);
|
||||
}
|
||||
|
||||
#ifdef ESP32
|
||||
void serialOut(const char *item, int32_t v, uint32_t d, bool clear)
|
||||
#else
|
||||
void serialOut(const __FlashStringHelper *item, int32_t v, uint32_t d, bool clear)
|
||||
#endif
|
||||
{
|
||||
#ifdef CANVAS
|
||||
gfx->flush();
|
||||
#endif
|
||||
Serial.print(item);
|
||||
if (v < 0)
|
||||
{
|
||||
Serial.println(F("N/A"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println(v);
|
||||
}
|
||||
delay(d);
|
||||
if (clear)
|
||||
{
|
||||
gfx->fillScreen(RGB565_BLACK);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ESP32
|
||||
void printnice(const char *item, long int v)
|
||||
#else
|
||||
void printnice(const __FlashStringHelper *item, long int v)
|
||||
#endif
|
||||
{
|
||||
gfx->setTextSize(tsb);
|
||||
gfx->setTextColor(RGB565_CYAN);
|
||||
gfx->print(item);
|
||||
|
||||
gfx->setTextSize(tsc);
|
||||
gfx->setTextColor(RGB565_YELLOW);
|
||||
if (v < 0)
|
||||
{
|
||||
gfx->println(F(" N / A"));
|
||||
}
|
||||
else
|
||||
{
|
||||
char str[32] = {0};
|
||||
#ifdef RTL8722DM
|
||||
sprintf(str, "%d", (int)v);
|
||||
#else
|
||||
sprintf(str, "%ld", v);
|
||||
#endif
|
||||
for (char *p = (str + strlen(str)) - 3; p > str; p -= 3)
|
||||
{
|
||||
memmove(p + 1, p, strlen(p) + 1);
|
||||
*p = ',';
|
||||
}
|
||||
while (strlen(str) < ds)
|
||||
{
|
||||
memmove(str + 1, str, strlen(str) + 1);
|
||||
*str = ' ';
|
||||
}
|
||||
gfx->println(str);
|
||||
}
|
||||
}
|
||||
|
||||
int32_t testFillScreen()
|
||||
{
|
||||
uint32_t start = micros_start();
|
||||
// Shortened this tedious test!
|
||||
gfx->fillScreen(RGB565_WHITE);
|
||||
gfx->fillScreen(RGB565_RED);
|
||||
gfx->fillScreen(RGB565_GREEN);
|
||||
gfx->fillScreen(RGB565_BLUE);
|
||||
gfx->fillScreen(RGB565_BLACK);
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testText()
|
||||
{
|
||||
uint32_t start = micros_start();
|
||||
gfx->setCursor(0, 0);
|
||||
|
||||
gfx->setTextSize(1);
|
||||
gfx->setTextColor(RGB565_WHITE, RGB565_BLACK);
|
||||
gfx->println(F("Hello World!"));
|
||||
|
||||
gfx->setTextSize(2);
|
||||
gfx->setTextColor(gfx->color565(0xff, 0x00, 0x00));
|
||||
gfx->print(F("RGB565_RED "));
|
||||
gfx->setTextColor(gfx->color565(0x00, 0xff, 0x00));
|
||||
gfx->print(F("RGB565_GREEN "));
|
||||
gfx->setTextColor(gfx->color565(0x00, 0x00, 0xff));
|
||||
gfx->println(F("RGB565_BLUE"));
|
||||
|
||||
gfx->setTextSize(tsa);
|
||||
gfx->setTextColor(RGB565_YELLOW);
|
||||
gfx->println(1234.56);
|
||||
|
||||
gfx->setTextColor(RGB565_WHITE);
|
||||
gfx->println((w > 128) ? 0xDEADBEEF : 0xDEADBEE, HEX);
|
||||
|
||||
gfx->setTextColor(RGB565_CYAN, RGB565_WHITE);
|
||||
gfx->println(F("Groop,"));
|
||||
|
||||
gfx->setTextSize(tsc);
|
||||
gfx->setTextColor(RGB565_MAGENTA, RGB565_WHITE);
|
||||
gfx->println(F("I implore thee,"));
|
||||
|
||||
gfx->setTextSize(1);
|
||||
gfx->setTextColor(RGB565_NAVY, RGB565_WHITE);
|
||||
gfx->println(F("my foonting turlingdromes."));
|
||||
|
||||
gfx->setTextColor(RGB565_DARKGREEN, RGB565_WHITE);
|
||||
gfx->println(F("And hooptiously drangle me"));
|
||||
|
||||
gfx->setTextColor(RGB565_DARKCYAN, RGB565_WHITE);
|
||||
gfx->println(F("with crinkly bindlewurdles,"));
|
||||
|
||||
gfx->setTextColor(RGB565_MAROON, RGB565_WHITE);
|
||||
gfx->println(F("Or I will rend thee"));
|
||||
|
||||
gfx->setTextColor(RGB565_PURPLE, RGB565_WHITE);
|
||||
gfx->println(F("in the gobberwartsb"));
|
||||
|
||||
gfx->setTextColor(RGB565_OLIVE, RGB565_WHITE);
|
||||
gfx->println(F("with my blurglecruncheon,"));
|
||||
|
||||
gfx->setTextColor(RGB565_DARKGREY, RGB565_WHITE);
|
||||
gfx->println(F("see if I don't!"));
|
||||
|
||||
gfx->setTextSize(2);
|
||||
gfx->setTextColor(RGB565_RED);
|
||||
gfx->println(F("Size 2"));
|
||||
|
||||
gfx->setTextSize(3);
|
||||
gfx->setTextColor(RGB565_ORANGE);
|
||||
gfx->println(F("Size 3"));
|
||||
|
||||
gfx->setTextSize(4);
|
||||
gfx->setTextColor(RGB565_YELLOW);
|
||||
gfx->println(F("Size 4"));
|
||||
|
||||
gfx->setTextSize(5);
|
||||
gfx->setTextColor(RGB565_GREENYELLOW);
|
||||
gfx->println(F("Size 5"));
|
||||
|
||||
gfx->setTextSize(6);
|
||||
gfx->setTextColor(RGB565_GREEN);
|
||||
gfx->println(F("Size 6"));
|
||||
|
||||
gfx->setTextSize(7);
|
||||
gfx->setTextColor(RGB565_BLUE);
|
||||
gfx->println(F("Size 7"));
|
||||
|
||||
gfx->setTextSize(8);
|
||||
gfx->setTextColor(RGB565_PURPLE);
|
||||
gfx->println(F("Size 8"));
|
||||
|
||||
gfx->setTextSize(9);
|
||||
gfx->setTextColor(RGB565_PALERED);
|
||||
gfx->println(F("Size 9"));
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testPixels()
|
||||
{
|
||||
uint32_t start = micros_start();
|
||||
|
||||
for (int16_t y = 0; y < h; y++)
|
||||
{
|
||||
for (int16_t x = 0; x < w; x++)
|
||||
{
|
||||
gfx->drawPixel(x, y, gfx->color565(x << 3, y << 3, x * y));
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testLines()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t x1, y1, x2, y2;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
x1 = y1 = 0;
|
||||
y2 = h - 1;
|
||||
for (x2 = 0; x2 < w; x2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x2 = w - 1;
|
||||
for (y2 = 0; y2 < h; y2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x1 = w - 1;
|
||||
y1 = 0;
|
||||
y2 = h - 1;
|
||||
for (x2 = 0; x2 < w; x2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x2 = 0;
|
||||
for (y2 = 0; y2 < h; y2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x1 = 0;
|
||||
y1 = h - 1;
|
||||
y2 = 0;
|
||||
for (x2 = 0; x2 < w; x2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x2 = w - 1;
|
||||
for (y2 = 0; y2 < h; y2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x1 = w - 1;
|
||||
y1 = h - 1;
|
||||
y2 = 0;
|
||||
for (x2 = 0; x2 < w; x2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
x2 = 0;
|
||||
for (y2 = 0; y2 < h; y2 += 6)
|
||||
{
|
||||
gfx->drawLine(x1, y1, x2, y2, RGB565_BLUE);
|
||||
}
|
||||
#ifdef ESP8266
|
||||
yield(); // avoid long run triggered ESP8266 WDT restart
|
||||
#endif
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testFastLines()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t x, y;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (y = 0; y < h; y += 5)
|
||||
{
|
||||
gfx->drawFastHLine(0, y, w, RGB565_RED);
|
||||
}
|
||||
for (x = 0; x < w; x += 5)
|
||||
{
|
||||
gfx->drawFastVLine(x, 0, h, RGB565_BLUE);
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testFilledRects()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t i, i2;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (i = n; i > 0; i -= 6)
|
||||
{
|
||||
i2 = i / 2;
|
||||
|
||||
gfx->fillRect(cx - i2, cy - i2, i, i, gfx->color565(i, i, 0));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testRects()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t i, i2;
|
||||
|
||||
start = micros_start();
|
||||
for (i = 2; i < n; i += 6)
|
||||
{
|
||||
i2 = i / 2;
|
||||
gfx->drawRect(cx - i2, cy - i2, i, i, RGB565_GREEN);
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testFilledCircles(uint8_t radius)
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t x, y, r2 = radius * 2;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (x = radius; x < w; x += r2)
|
||||
{
|
||||
for (y = radius; y < h; y += r2)
|
||||
{
|
||||
gfx->fillCircle(x, y, radius, RGB565_MAGENTA);
|
||||
}
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testCircles(uint8_t radius)
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t x, y, r2 = radius * 2;
|
||||
int32_t w1 = w + radius;
|
||||
int32_t h1 = h + radius;
|
||||
|
||||
// Screen is not cleared for this one -- this is
|
||||
// intentional and does not affect the reported time.
|
||||
start = micros_start();
|
||||
|
||||
for (x = 0; x < w1; x += r2)
|
||||
{
|
||||
for (y = 0; y < h1; y += r2)
|
||||
{
|
||||
gfx->drawCircle(x, y, radius, RGB565_WHITE);
|
||||
}
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testFillArcs()
|
||||
{
|
||||
int16_t i, r = 360 / cn;
|
||||
uint32_t start = micros_start();
|
||||
|
||||
for (i = 6; i < cn; i += 6)
|
||||
{
|
||||
gfx->fillArc(cx1, cy1, i, i - 3, 0, i * r, RGB565_RED);
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testArcs()
|
||||
{
|
||||
int16_t i, r = 360 / cn;
|
||||
uint32_t start = micros_start();
|
||||
|
||||
for (i = 6; i < cn; i += 6)
|
||||
{
|
||||
gfx->drawArc(cx1, cy1, i, i - 3, 0, i * r, RGB565_WHITE);
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testFilledTriangles()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t i;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (i = cn1; i > 10; i -= 5)
|
||||
{
|
||||
gfx->fillTriangle(cx1, cy1 - i, cx1 - i, cy1 + i, cx1 + i, cy1 + i,
|
||||
gfx->color565(0, i, i));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testTriangles()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t i;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (i = 0; i < cn; i += 5)
|
||||
{
|
||||
gfx->drawTriangle(
|
||||
cx1, cy1 - i, // peak
|
||||
cx1 - i, cy1 + i, // bottom left
|
||||
cx1 + i, cy1 + i, // bottom right
|
||||
gfx->color565(0, 0, i));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testFilledRoundRects()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t i, i2;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (i = n1; i > 20; i -= 6)
|
||||
{
|
||||
i2 = i / 2;
|
||||
gfx->fillRoundRect(cx - i2, cy - i2, i, i, i / 8, gfx->color565(0, i, 0));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
int32_t testRoundRects()
|
||||
{
|
||||
uint32_t start;
|
||||
int32_t i, i2;
|
||||
|
||||
start = micros_start();
|
||||
|
||||
for (i = 20; i < n1; i += 6)
|
||||
{
|
||||
i2 = i / 2;
|
||||
gfx->drawRoundRect(cx - i2, cy - i2, i, i, i / 8, gfx->color565(i, 0, 0));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
/***************************************************
|
||||
Original sketch text:
|
||||
|
||||
This is an example sketch for the Adafruit 2.2" SPI display.
|
||||
This library works with the Adafruit 2.2" TFT Breakout w/SD card
|
||||
----> http://www.adafruit.com/products/1480
|
||||
|
||||
Check out the links above for our tutorials and wiring diagrams
|
||||
These displays use SPI to communicate, 4 or 5 pins are required to
|
||||
interface (RST is optional)
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries.
|
||||
MIT license, all text above must be included in any redistribution
|
||||
****************************************************/
|
||||
Reference in New Issue
Block a user