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:
		
							parent
							
								
									5274d35207
								
							
						
					
					
						commit
						2d0f580a38
					
				
							
								
								
									
										10
									
								
								TFT_eSPI.h
								
								
								
								
							
							
						
						
									
										10
									
								
								TFT_eSPI.h
								
								
								
								
							|  | @ -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 | ||||
|  |  | |||
|  | @ -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": | ||||
|   { | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Bodmer
						Bodmer