mirror of
https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library.git
synced 2026-03-08 00:56:55 +01:00
Add setPins method for different boards
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
11
src/TTGO.h
11
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");
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user