mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
f6d399ec08
The existing code was broken in a few ways:
- It didn't use the correct operator precedence for the VSCRDEF VSA
variable: it needed some extra parentheses to be correct.
- It used the configured height instead of the actual display height
for calculating VSA, which is incorrect. TFA+VSA+BFA must always be
exactly 320, even if a lower value is configured.
- If a lower than 320 pixel height is configured, the bottomFixedArea
parameter applied to the whole 320 pixel screen height. Because this
seems counter intuitive (and relies on properties of any given
screen), I've changed it to work from the actual visible bottom of
the screen (which may be smaller than 320 pixels).
TODO: this doesn't take RowOffset into account, while it probably
should.
I haven't fixed the st7735 implementation, because I didn't have example
code on hand that would easily work on a st7735 screen. This is left as
a TODO for the future.
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.