Add setPins method for different boards

This commit is contained in:
lewis he
2020-08-19 17:44:49 +08:00
parent 813ec2060d
commit fc82408366
8 changed files with 193 additions and 235 deletions

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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");

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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