Silicon bug work-around for Issue #21

There is a silicon bug in the ESP32, writing the same value to a
register twice sometimes fails. TFT_CS needs a delay though, so the fix
is to write two different values to the register.
This commit is contained in:
Bodmer
2017-06-16 13:45:49 +01:00
parent 5274d35207
commit 2d0f580a38
3 changed files with 9 additions and 7 deletions

View File

@@ -80,7 +80,7 @@
//#define DC_C digitalWrite(TFT_DC, HIGH); GPIO.out_w1tc = (1 << TFT_DC)//digitalWrite(TFT_DC, LOW)
//#define DC_D digitalWrite(TFT_DC, LOW); GPIO.out_w1ts = (1 << TFT_DC)//digitalWrite(TFT_DC, HIGH)
#define DC_C GPIO.out_w1ts = (1 << TFT_DC); GPIO.out_w1ts = (1 << TFT_DC); GPIO.out_w1tc = (1 << TFT_DC)
#define DC_D GPIO.out_w1ts = (1 << TFT_DC); GPIO.out_w1ts = (1 << TFT_DC)
#define DC_D GPIO.out_w1tc = (1 << TFT_DC); GPIO.out_w1ts = (1 << TFT_DC)
#else
#define DC_C GPOC=dcpinmask
#define DC_D GPOS=dcpinmask
@@ -96,7 +96,7 @@
#elif defined (ESP32)
//#define CS_L digitalWrite(TFT_CS, HIGH); GPIO.out_w1tc = (1 << TFT_CS)//digitalWrite(TFT_CS, LOW)
//#define CS_H digitalWrite(TFT_CS, LOW); GPIO.out_w1ts = (1 << TFT_CS)//digitalWrite(TFT_CS, HIGH)
#define CS_L GPIO.out_w1tc = (1 << TFT_CS);GPIO.out_w1tc = (1 << TFT_CS)
#define CS_L GPIO.out_w1ts = (1 << TFT_CS);GPIO.out_w1tc = (1 << TFT_CS)
#define CS_H GPIO.out_w1ts = (1 << TFT_CS)
#else
#define CS_L GPOC=cspinmask
@@ -106,8 +106,10 @@
#ifdef TFT_WR
#if defined (ESP32)
#define WR_L digitalWrite(TFT_WR, LOW)
#define WR_H digitalWrite(TFT_WR, HIGH)
#define WR_L GPIO.out_w1tc = (1 << TFT_WR)
//digitalWrite(TFT_WR, LOW)
#define WR_H GPIO.out_w1ts = (1 << TFT_WR)
//digitalWrite(TFT_WR, HIGH)
#else
#define WR_L GPOC=wrpinmask
#define WR_H GPOS=wrpinmask

View File

@@ -1,7 +1,7 @@
{
"name": "TFT_eSPI",
"version": "0.16.10",
"keywords": "TFT, ESP8266, NodeMCU, ILI9341, ST7735, ILI9163, S6D02A1, ILI9486",
"version": "0.16.11",
"keywords": "TFT, ESP8266, NodeMCU, ESP32, ILI9341, ST7735, ILI9163, S6D02A1, ILI9486",
"description": "A TFT SPI graphics library for ESP8266",
"repository":
{

View File

@@ -1,5 +1,5 @@
name=TFT_eSPI
version=0.16.10
version=0.16.11
author=Bodmer
maintainer=Bodmer
sentence=A fast TFT library for ESP8266 processors and the Arduino IDE