From fc8240836684db628439b18ea028e6cdb3ded06d Mon Sep 17 00:00:00 2001 From: lewis he Date: Wed, 19 Aug 2020 17:44:49 +0800 Subject: [PATCH] Add setPins method for different boards --- src/LilyGoWatch.h | 6 +- src/TFT_eSPI/TFT_eSPI.cpp | 119 ++++--------- src/TFT_eSPI/TFT_eSPI.h | 276 +++++++++++++++--------------- src/TTGO.h | 11 +- src/board/twatch2019_with_touch.h | 2 +- src/board/twatch2020_v1.h | 2 +- src/board/twatch2020_v2.h | 2 +- src/board/twatch_block.h | 10 ++ 8 files changed, 193 insertions(+), 235 deletions(-) diff --git a/src/LilyGoWatch.h b/src/LilyGoWatch.h index d029e37..224e3e1 100644 --- a/src/LilyGoWatch.h +++ b/src/LilyGoWatch.h @@ -195,9 +195,9 @@ #if defined(LILYGO_EINK_TOUCHSCREEN) || defined(LILYGO_BLOCK_ST7796S_MODULE) || defined(LILYGO_BLOCK_ILI9488_MODULE) -#ifndef LILYGO_EINK_TOUCHSCREEN -#define LILYGO_EINK_TOUCHSCREEN -#endif +// #ifndef LILYGO_EINK_TOUCHSCREEN +// #define LILYGO_EINK_TOUCHSCREEN +// #endif #define LILYGO_WATCH_HAS_TOUCH #define LILYGO_WATCH_HAS_DISPLAY diff --git a/src/TFT_eSPI/TFT_eSPI.cpp b/src/TFT_eSPI/TFT_eSPI.cpp index d211cde..02966d5 100644 --- a/src/TFT_eSPI/TFT_eSPI.cpp +++ b/src/TFT_eSPI/TFT_eSPI.cpp @@ -1075,6 +1075,7 @@ void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t ** Description: Toggles DC line during transaction ***************************************************************************************/ extern "C" void dc_callback(); +static uint8_t tft_dc_pin; void IRAM_ATTR dc_callback(spi_transaction_t *spi_tx) { @@ -1091,9 +1092,9 @@ bool TFT_eSPI::initDMA(void) if (DMA_Enabled) return false; esp_err_t ret; spi_bus_config_t buscfg = { - .mosi_io_num = TFT_MOSI, - .miso_io_num = TFT_MISO, - .sclk_io_num = TFT_SCLK, + .mosi_io_num = drv.pin_tft_mosi, + .miso_io_num = drv.pin_tft_miso, + .sclk_io_num = drv.pin_tft_clk, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = TFT_WIDTH * TFT_HEIGHT * 2 + 8, // TFT screen size @@ -1110,7 +1111,7 @@ bool TFT_eSPI::initDMA(void) .cs_ena_posttrans = 0, .clock_speed_hz = drv.tft_spi_freq, // lewis add. Mark : Used to set different models .input_delay_ns = 0, - .spics_io_num = TFT_CS, + .spics_io_num = drv.pin_tft_cs, .flags = SPI_DEVICE_NO_DUMMY, .queue_size = 7, .pre_cb = dc_callback, //Callback to handle D/C line @@ -1412,64 +1413,21 @@ void TFT_eSPI::begin(uint8_t tc) void TFT_eSPI::init(uint8_t tc) { if (_booted) { -#if !defined (ESP32) && !defined(TFT_PARALLEL_8_BIT) -#if defined (TFT_CS) && (TFT_CS >= 0) - cspinmask = (uint32_t) digitalPinToBitMask(TFT_CS); -#endif -#if defined (TFT_DC) && (TFT_DC >= 0) - dcpinmask = (uint32_t) digitalPinToBitMask(TFT_DC); -#endif - -#if defined (TFT_WR) && (TFT_WR >= 0) - wrpinmask = (uint32_t) digitalPinToBitMask(TFT_WR); -#endif - -#if defined (TFT_SCLK) && (TFT_SCLK >= 0) - sclkpinmask = (uint32_t) digitalPinToBitMask(TFT_SCLK); -#endif - -#if defined (TFT_SPI_OVERLAP) && defined (ESP8266) -// Overlap mode SD0=MISO, SD1=MOSI, CLK=SCLK must use D3 as CS -// pins(int8_t sck, int8_t miso, int8_t mosi, int8_t ss); -//spi.pins( 6, 7, 8, 0); - spi.pins(6, 7, 8, 0); -#endif - - spi.begin(); // This will set HMISO to input - -#else -#if !defined(TFT_PARALLEL_8_BIT) -#if defined (TFT_MOSI) && !defined (TFT_SPI_OVERLAP) - spi.begin(TFT_SCLK, TFT_MISO, TFT_MOSI, -1); -#else - spi.begin(); -#endif -#endif -#endif + spi.begin(drv.pin_tft_clk, drv.pin_tft_miso, drv.pin_tft_mosi); inTransaction = false; locked = true; INIT_TFT_DATA_BUS; - - -#ifdef TFT_CS -// Set to output once again in case D6 (MISO) is used for CS - pinMode(TFT_CS, OUTPUT); - digitalWrite(TFT_CS, HIGH); // Chip select high (inactive) -#elif defined (ESP8266) && !defined (TFT_PARALLEL_8_BIT) - spi.setHwCs(1); // Use hardware SS toggling -#endif - - + // Set to output once again in case D6 (MISO) is used for CS + pinMode(drv.pin_tft_cs, OUTPUT); + digitalWrite(drv.pin_tft_cs, HIGH); // Chip select high (inactive) // Set to output once again in case D6 (MISO) is used for DC -#ifdef TFT_DC - pinMode(TFT_DC, OUTPUT); - digitalWrite(TFT_DC, HIGH); // Data/Command high = data mode -#endif + pinMode(drv.pin_tft_dc, OUTPUT); + digitalWrite(drv.pin_tft_dc, HIGH); // Data/Command high = data mode _booted = false; end_tft_write(); @@ -5295,6 +5253,12 @@ void TFT_eSPI::getSetup(setup_t &tft_settings) tft_settings.tft_width = _init_width; tft_settings.tft_height = _init_height; + tft_settings.pin_tft_mosi = drv.pin_tft_mosi; + tft_settings.pin_tft_miso = drv.pin_tft_miso; + tft_settings.pin_tft_clk = drv.pin_tft_clk; + tft_settings.pin_tft_cs = drv.pin_tft_cs; + tft_settings.pin_tft_dc = drv.pin_tft_dc; + #ifdef CGRAM_OFFSET tft_settings.r0_x_offset = colstart; tft_settings.r0_y_offset = rowstart; @@ -5315,36 +5279,6 @@ void TFT_eSPI::getSetup(setup_t &tft_settings) tft_settings.r3_y_offset = 0; #endif -#if defined (TFT_MOSI) - tft_settings.pin_tft_mosi = TFT_MOSI; -#else - tft_settings.pin_tft_mosi = -1; -#endif - -#if defined (TFT_MISO) - tft_settings.pin_tft_miso = TFT_MISO; -#else - tft_settings.pin_tft_miso = -1; -#endif - -#if defined (TFT_SCLK) - tft_settings.pin_tft_clk = TFT_SCLK; -#else - tft_settings.pin_tft_clk = -1; -#endif - -#if defined (TFT_CS) - tft_settings.pin_tft_cs = TFT_CS; -#else - tft_settings.pin_tft_cs = -1; -#endif - -#if defined (TFT_DC) - tft_settings.pin_tft_dc = TFT_DC; -#else - tft_settings.pin_tft_dc = -1; -#endif - #if defined (TFT_RD) tft_settings.pin_tft_rd = TFT_RD; #else @@ -8253,4 +8187,21 @@ void TFT_eSPI::setDriver(uint32_t model, uint32_t freq) { drv.tft_driver = model; drv.tft_spi_freq = freq; -} \ No newline at end of file +} + + +void TFT_eSPI::setPins(uint8_t mosi, uint8_t miso, uint8_t sclk, uint8_t cs, uint8_t dc) +{ + drv.pin_tft_mosi = mosi; + drv.pin_tft_miso = miso; + drv.pin_tft_clk = sclk; + drv.pin_tft_cs = cs; + drv.pin_tft_dc = dc; + tft_dc_pin = dc; +} + + + + + + diff --git a/src/TFT_eSPI/TFT_eSPI.h b/src/TFT_eSPI/TFT_eSPI.h index bc77e4f..db30003 100644 --- a/src/TFT_eSPI/TFT_eSPI.h +++ b/src/TFT_eSPI/TFT_eSPI.h @@ -31,11 +31,11 @@ #define TFT_WIDTH 240 #define TFT_HEIGHT 240 -#define TFT_MISO 0 //IO0 is not used, just to remove errors -#define TFT_MOSI 19 -#define TFT_SCLK 18 -#define TFT_CS 5 -#define TFT_DC 27 +// #define TFT_MISO 0 //IO0 is not used, just to remove errors +// #define TFT_MOSI 19 +// #define TFT_SCLK 18 +// #define TFT_CS 5 +// #define TFT_DC 27 #define SPI_FREQUENCY 27000000 // Actually sets it to 26.67MHz = 80/3 // #define SPI_FREQUENCY 40000000 @@ -143,89 +143,89 @@ //////////////////////////////////////////////////////////////////////////////////////// // Define the DC (TFT Data/Command or Register Select (RS))pin drive code //////////////////////////////////////////////////////////////////////////////////////// -#ifndef TFT_DC -#define DC_C // No macro allocated so it generates no code -#define DC_D // No macro allocated so it generates no code -#else -#if defined (TFT_PARALLEL_8_BIT) -#define DC_C GPIO.out_w1tc = (1 << TFT_DC) -#define DC_D GPIO.out_w1ts = (1 << TFT_DC) -#else -#if TFT_DC >= 32 -#ifdef RPI_DISPLAY_TYPE // RPi displays need a slower DC change -#define DC_C GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)); \ - GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)) -#define DC_D GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)); \ - GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)) -#else -#define DC_C GPIO.out1_w1tc.val = (1 << (TFT_DC - 32))//;GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)) -#define DC_D GPIO.out1_w1ts.val = (1 << (TFT_DC - 32))//;GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)) -#endif -#elif TFT_DC >= 0 -#ifdef RPI_DISPLAY_TYPE // RPi ILI9486 display needs a slower DC change -#define DC_C GPIO.out_w1tc = (1 << TFT_DC); \ - GPIO.out_w1tc = (1 << TFT_DC) -#define DC_D GPIO.out_w1tc = (1 << TFT_DC); \ - GPIO.out_w1ts = (1 << TFT_DC) -#elif defined (RPI_DISPLAY_TYPE) // Other RPi displays need a slower C->D change -#define DC_C GPIO.out_w1tc = (1 << TFT_DC) -#define DC_D GPIO.out_w1tc = (1 << TFT_DC); \ - GPIO.out_w1ts = (1 << TFT_DC) -#else -#define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC) -#define DC_D GPIO.out_w1ts = (1 << TFT_DC)//;GPIO.out_w1ts = (1 << TFT_DC) -#endif -#else -#define DC_C -#define DC_D -#endif -#endif -#endif +// #ifndef TFT_DC +// #define DC_C // No macro allocated so it generates no code +// #define DC_D // No macro allocated so it generates no code +// #else +// #if defined (TFT_PARALLEL_8_BIT) +// #define DC_C GPIO.out_w1tc = (1 << TFT_DC) +// #define DC_D GPIO.out_w1ts = (1 << TFT_DC) +// #else +// #if TFT_DC >= 32 +// #ifdef RPI_DISPLAY_TYPE // RPi displays need a slower DC change +// #define DC_C GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)); +// GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)) +// #define DC_D GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)); +// GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)) +// #else +// #define DC_C GPIO.out1_w1tc.val = (1 << (TFT_DC - 32))//;GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)) +// #define DC_D GPIO.out1_w1ts.val = (1 << (TFT_DC - 32))//;GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)) +// #endif +// #elif TFT_DC >= 0 +// #ifdef RPI_DISPLAY_TYPE // RPi ILI9486 display needs a slower DC change +// #define DC_C GPIO.out_w1tc = (1 << TFT_DC); +// GPIO.out_w1tc = (1 << TFT_DC) +// #define DC_D GPIO.out_w1tc = (1 << TFT_DC); +// GPIO.out_w1ts = (1 << TFT_DC) +// #elif defined (RPI_DISPLAY_TYPE) // Other RPi displays need a slower C->D change +// #define DC_C GPIO.out_w1tc = (1 << TFT_DC) +// #define DC_D GPIO.out_w1tc = (1 << TFT_DC); +// GPIO.out_w1ts = (1 << TFT_DC) +// #else +#define DC_C GPIO.out_w1tc = (1 << tft_dc_pin)//;GPIO.out_w1tc = (1 << TFT_DC) +#define DC_D GPIO.out_w1ts = (1 << tft_dc_pin)//;GPIO.out_w1ts = (1 << TFT_DC) +// #endif +// #else +// #define DC_C +// #define DC_D +// #endif +// #endif +// #endif //////////////////////////////////////////////////////////////////////////////////////// // Define the CS (TFT chip select) pin drive code //////////////////////////////////////////////////////////////////////////////////////// -#ifndef TFT_CS -#define TFT_CS -1 // Keep DMA code happy -#define CS_L // No macro allocated so it generates no code -#define CS_H // No macro allocated so it generates no code -#else -#if defined (TFT_PARALLEL_8_BIT) -#if TFT_CS >= 32 -#define CS_L GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) -#define CS_H GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) -#elif TFT_CS >= 0 -#define CS_L GPIO.out_w1tc = (1 << TFT_CS) -#define CS_H GPIO.out_w1ts = (1 << TFT_CS) -#else -#define CS_L -#define CS_H -#endif -#else -#if TFT_CS >= 32 -#ifdef RPI_DISPLAY_TYPE // RPi ILI9486 display needs a slower CS change -#define CS_L GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)); \ - GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) -#define CS_H GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)); \ - GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) -#else -#define CS_L GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)); GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) -#define CS_H GPIO.out1_w1ts.val = (1 << (TFT_CS - 32))//;GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) -#endif -#elif TFT_CS >= 0 -#ifdef RPI_DISPLAY_TYPE // RPi ILI9486 display needs a slower CS change -#define CS_L GPIO.out_w1ts = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS) -#define CS_H GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1ts = (1 << TFT_CS) -#else -#define CS_L GPIO.out_w1tc = (1 << TFT_CS);GPIO.out_w1tc = (1 << TFT_CS) -#define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS) -#endif -#else -#define CS_L -#define CS_H -#endif -#endif -#endif +// #ifndef TFT_CS +// #define TFT_CS -1 // Keep DMA code happy +// #define CS_L // No macro allocated so it generates no code +// #define CS_H // No macro allocated so it generates no code +// #else +// #if defined (TFT_PARALLEL_8_BIT) +// #if TFT_CS >= 32 +// #define CS_L GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) +// #define CS_H GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) +// #elif TFT_CS >= 0 +// #define CS_L GPIO.out_w1tc = (1 << TFT_CS) +// #define CS_H GPIO.out_w1ts = (1 << TFT_CS) +// #else +// #define CS_L +// #define CS_H +// #endif +// #else +// #if TFT_CS >= 32 +// #ifdef RPI_DISPLAY_TYPE // RPi ILI9486 display needs a slower CS change +// #define CS_L GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)); +// GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) +// #define CS_H GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)); +// GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) +// #else +// #define CS_L GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)); GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) +// #define CS_H GPIO.out1_w1ts.val = (1 << (TFT_CS - 32))//;GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) +// #endif +// #elif TFT_CS >= 0 +// #ifdef RPI_DISPLAY_TYPE // RPi ILI9486 display needs a slower CS change +// #define CS_L GPIO.out_w1ts = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS) +// #define CS_H GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1ts = (1 << TFT_CS) +// #else +#define CS_L GPIO.out_w1tc = (1 << drv.pin_tft_cs);GPIO.out_w1tc = (1 << drv.pin_tft_cs) +#define CS_H GPIO.out_w1ts = (1 << drv.pin_tft_cs)//;GPIO.out_w1ts = (1 << TFT_CS) +// #endif +// #else +// #define CS_L +// #define CS_H +// #endif +// #endif +// #endif //////////////////////////////////////////////////////////////////////////////////////// // Define the WR (TFT Write) pin drive code @@ -249,63 +249,59 @@ //////////////////////////////////////////////////////////////////////////////////////// // Make sure SPI default pins are assigned if not specified by user or set to -1 //////////////////////////////////////////////////////////////////////////////////////// -#if !defined (TFT_PARALLEL_8_BIT) +// #if !defined (TFT_PARALLEL_8_BIT) +// #ifdef USE_HSPI_PORT +// #ifndef TFT_MISO +// #define TFT_MISO 12 +// #endif +// #if (TFT_MISO == -1) +// #undef TFT_MISO +// #define TFT_MISO 12 +// #endif -#ifdef USE_HSPI_PORT +// #ifndef TFT_MOSI +// #define TFT_MOSI 13 +// #endif +// #if (TFT_MOSI == -1) +// #undef TFT_MOSI +// #define TFT_MOSI 13 +// #endif -#ifndef TFT_MISO -#define TFT_MISO 12 -#endif -#if (TFT_MISO == -1) -#undef TFT_MISO -#define TFT_MISO 12 -#endif +// #ifndef TFT_SCLK +// #define TFT_SCLK 14 +// #endif +// #if (TFT_SCLK == -1) +// #undef TFT_SCLK +// #define TFT_SCLK 14 +// #endif -#ifndef TFT_MOSI -#define TFT_MOSI 13 -#endif -#if (TFT_MOSI == -1) -#undef TFT_MOSI -#define TFT_MOSI 13 -#endif +// #else // VSPI port -#ifndef TFT_SCLK -#define TFT_SCLK 14 -#endif -#if (TFT_SCLK == -1) -#undef TFT_SCLK -#define TFT_SCLK 14 -#endif +// #ifndef TFT_MISO +// #define TFT_MISO 19 +// #endif +// #if (TFT_MISO == -1) +// #undef TFT_MISO +// #define TFT_MISO 19 +// #endif -#else // VSPI port +// #ifndef TFT_MOSI +// #define TFT_MOSI 23 +// #endif +// #if (TFT_MOSI == -1) +// #undef TFT_MOSI +// #define TFT_MOSI 23 +// #endif -#ifndef TFT_MISO -#define TFT_MISO 19 -#endif -#if (TFT_MISO == -1) -#undef TFT_MISO -#define TFT_MISO 19 -#endif - -#ifndef TFT_MOSI -#define TFT_MOSI 23 -#endif -#if (TFT_MOSI == -1) -#undef TFT_MOSI -#define TFT_MOSI 23 -#endif - -#ifndef TFT_SCLK -#define TFT_SCLK 18 -#endif -#if (TFT_SCLK == -1) -#undef TFT_SCLK -#define TFT_SCLK 18 -#endif - -#endif - -#endif +// #ifndef TFT_SCLK +// #define TFT_SCLK 18 +// #endif +// #if (TFT_SCLK == -1) +// #undef TFT_SCLK +// #define TFT_SCLK 18 +// #endif +// #endif +// #endif //////////////////////////////////////////////////////////////////////////////////////// // Define the parallel bus interface chip pin drive code @@ -749,10 +745,10 @@ typedef struct { uint8_t r3_x_offset; uint8_t r3_y_offset; - int8_t pin_tft_mosi; // SPI pins - int8_t pin_tft_miso; - int8_t pin_tft_clk; - int8_t pin_tft_cs; + uint8_t pin_tft_mosi; // SPI pins + uint8_t pin_tft_miso; + uint8_t pin_tft_clk; + uint8_t pin_tft_cs; int8_t pin_tft_dc; // Control pins int8_t pin_tft_rd; @@ -808,6 +804,7 @@ public: // lewis add. Mark : Used to set different models void setDriver(uint32_t model, uint32_t freq ); + void setPins(uint8_t mosi, uint8_t miso, uint8_t sclk, uint8_t cs, uint8_t dc); // These are virtual so the TFT_eSprite class can override them with sprite specific functions @@ -1122,7 +1119,6 @@ private: void inline tft_Write_32D(uint32_t C); - void ILI9488_pushBlock(uint16_t color, uint32_t len); void ILI9488_pushPixels(const void *data_in, uint32_t len); void ILI9488_pushSwapBytePixels(const void *data_in, uint32_t len); diff --git a/src/TTGO.h b/src/TTGO.h index 4e212a1..433473f 100644 --- a/src/TTGO.h +++ b/src/TTGO.h @@ -687,9 +687,10 @@ private: } + void initTFT() { -#if defined LILYGO_WATCH_HAS_DISPLAY && !defined(LILYGO_EINK_TOUCHSCREEN) +#if (defined(LILYGO_WATCH_HAS_DISPLAY) && !defined(LILYGO_EINK_TOUCHSCREEN)) || defined(LILYGO_BLOCK_ILI9488_MODULE) || defined(LILYGO_BLOCK_ST7796S_MODULE) #ifdef LILYGO_WATCH_2020_V1 //In the 2020V1 version, the ST7789 chip power supply @@ -717,10 +718,10 @@ private: h = 480; drv = 0x9488; freq = 27000000; -#endif - +#endif /* (LILYGO_BLOCK_ST7796S_MODULE) && defined(LILYGO_WATCH_BLOCK) */ tft = new TFT_eSPI(w, h); tft->setDriver(drv, freq); + tft->setPins(TWATCH_TFT_MOSI, TWATCH_TFT_MISO, TWATCH_TFT_SCLK, TWATCH_TFT_CS, TWATCH_TFT_DC); #endif /*EXTERNAL_TFT_ESPI_LIBRARY*/ tft->init(); @@ -744,13 +745,13 @@ private: void initTouch() { -#if defined(LILYGO_WATCH_HAS_TOUCH) && !defined(LILYGO_EINK_TOUCHSCREEN) +#if defined(LILYGO_WATCH_HAS_TOUCH) && !defined(LILYGO_EINK_TOUCHSCREEN) && !defined(LILYGO_BLOCK_ST7796S_MODULE) && !defined(LILYGO_BLOCK_ILI9488_MODULE) touch = new FT5206_Class(); Wire1.begin(TOUCH_SDA, TOUCH_SCL); if (!touch->begin(Wire1)) { DBGX("Begin touch FAIL"); } -#elif defined(LILYGO_EINK_TOUCHSCREEN) || defined(LILYGO_BLOCK_ST7796S_MODULE) +#elif defined(LILYGO_EINK_TOUCHSCREEN) || defined(LILYGO_BLOCK_ST7796S_MODULE) || defined(LILYGO_BLOCK_ILI9488_MODULE) touch = new FT5206_Class(); if (!touch->begin(axpReadBytes, axpWriteBytes)) { DBGX("Begin touch FAIL"); diff --git a/src/board/twatch2019_with_touch.h b/src/board/twatch2019_with_touch.h index 1339c62..0e220e2 100644 --- a/src/board/twatch2019_with_touch.h +++ b/src/board/twatch2019_with_touch.h @@ -3,7 +3,7 @@ #define TFT_WIDTH 240 #define TFT_HEIGHT 240 -#define TWATCH_TFT_MISO (gpio_num_t)-1 +#define TWATCH_TFT_MISO (gpio_num_t)0 #define TWATCH_TFT_MOSI (gpio_num_t)19 #define TWATCH_TFT_SCLK (gpio_num_t)18 #define TWATCH_TFT_CS (gpio_num_t)5 diff --git a/src/board/twatch2020_v1.h b/src/board/twatch2020_v1.h index ec50f42..2865ec6 100644 --- a/src/board/twatch2020_v1.h +++ b/src/board/twatch2020_v1.h @@ -3,7 +3,7 @@ #define TFT_WIDTH 240 #define TFT_HEIGHT 240 -#define TWATCH_TFT_MISO (gpio_num_t)-1 +#define TWATCH_TFT_MISO (gpio_num_t)0 #define TWATCH_TFT_MOSI (gpio_num_t)19 #define TWATCH_TFT_SCLK (gpio_num_t)18 #define TWATCH_TFT_CS (gpio_num_t)5 diff --git a/src/board/twatch2020_v2.h b/src/board/twatch2020_v2.h index 1065cea..a4e36b1 100644 --- a/src/board/twatch2020_v2.h +++ b/src/board/twatch2020_v2.h @@ -3,7 +3,7 @@ #define TFT_WIDTH 240 #define TFT_HEIGHT 240 -#define TWATCH_TFT_MISO (gpio_num_t)-1 +#define TWATCH_TFT_MISO (gpio_num_t)0 #define TWATCH_TFT_MOSI (gpio_num_t)19 #define TWATCH_TFT_SCLK (gpio_num_t)18 #define TWATCH_TFT_CS (gpio_num_t)5 diff --git a/src/board/twatch_block.h b/src/board/twatch_block.h index 7924530..bde9058 100644 --- a/src/board/twatch_block.h +++ b/src/board/twatch_block.h @@ -1,6 +1,16 @@ #pragma once +#define TFT_WIDTH 240 +#define TFT_HEIGHT 240 + +#define TWATCH_TFT_BL (gpio_num_t)12 +#define TWATCH_TFT_MISO (gpio_num_t)0 +#define TWATCH_TFT_MOSI (gpio_num_t)19 +#define TWATCH_TFT_SCLK (gpio_num_t)18 +#define TWATCH_TFT_CS (gpio_num_t)5 +#define TWATCH_TFT_DC (gpio_num_t)27 +#define TWATCH_TFT_RST (gpio_num_t)-1 #define TWATCH_TFT_BL (gpio_num_t)12 #define SD_CS 13