mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-03 06:27:47 +00:00
deca190ba2
Many displays don't have the TE pin exposed. But those that do have the pin (for example, the PyPortal) can use it to synchronize writing a new image to the display. When implemented correctly, tearing can be avoided entirely. This commit also changes the LCD refresh direction to either top-to-bottom or left-to-right depending on the rotation. Previously it might refresh from right-to-left or bottom-to-top. This has little impact on code that doesn't use the TE line, but code that does now only needs to worry about two cases (top-to-bottom and left-to-right) instead of four. (Unfortunately, it appears that the hardware doesn't support changing the major LCD refresh order so code that wants to do tear-free rendering still needs to care about these two cases).
TinyGo driver for TFT displays using ILI9341 driver chips.
These displays support 8-bit parallel, 16-bit parallel, or SPI interfaces.
Examples of such displays include:
- Adafruit PyPortal
- Adafruit 2.8" Touch Shield V2 (SPI)
- Adafruit 2.4" TFT LCD with Touchscreen Breakout w/MicroSD Socket
- 2.8" TFT LCD with Touchscreen Breakout Board w/MicroSD Socket
- 2.2" 18-bit color TFT LCD display with microSD card breakout
- TFT FeatherWing - 2.4" 320x240 Touchscreen For All Feathers
Currently this driver only supports an 8-bit parallel interface using ATSAMD51
(this is the default configuration on PyPortal). It should be relatively
straightforward to implement a more generic SPI-based interface as well.
Please see parallel_atsamd51.go for an example of what needs to be
implemented if you are interested in contributing.