|
TinyGPU
|
Driver for ILI9341 8-bit parallel display controller, driven via RP2040's PIO/DMA (see DisplayDriverParallel8RP2040). More...
#include <DisplayDriverParallel8RP2040.h>


Public Types | |
| using | Rotation = tinygpu::DisplayRotation |
Public Member Functions | |
| ILI9341Driver8080RP2040 (int8_t d0, int8_t wr, int8_t dc, int8_t cs=-1, int8_t rst=-1, Rotation rotation=Rotation::kNone, float clockDiv=8.0f, PIO pio=pio0, size_t nativeWidth=240, size_t nativeHeight=320) | |
| size_t | width () const override |
| size_t | height () const override |
| bool | begin () override |
| void | setRotation (Rotation rotation) override |
| Rotation | rotation () const |
| void | setInvertColor (bool invert) |
Public Member Functions inherited from DisplayDriverParallel8RP2040< RGB_T > | |
| DisplayDriverParallel8RP2040 (int8_t d0, int8_t wr, int8_t dc, int8_t cs=-1, int8_t rst=-1, size_t width=240, size_t height=320, float clockDiv=8.0f, PIO pio=pio0) | |
| void | end () override |
| ~DisplayDriverParallel8RP2040 () override | |
| size_t | width () const override |
| size_t | height () const override |
| bool | writeData (ISurface< RGB_T > &surface) override |
| bool | writeData (ISurface< RGB_T > &surface, size_t x, size_t y) override |
Public Member Functions inherited from DisplayDriver< RGB_T > | |
| virtual | ~DisplayDriver ()=default |
| virtual bool | begin ()=0 |
| virtual void | end () |
| virtual bool | writeData (ISurface< RGB_T > &surface)=0 |
| virtual bool | writeData (ISurface< RGB_T > &surface, size_t x, size_t y)=0 |
| virtual void | setRotation (DisplayRotation rotation) |
| virtual size_t | width () const =0 |
| virtual size_t | height () const =0 |
| void | writeColor (size_t width, size_t height, RGB_T color) |
Static Protected Member Functions | |
| static uint8_t | madctlForRotation (Rotation rotation) |
Protected Attributes | |
| Rotation | rotation_ |
| size_t | nativeWidth_ |
| size_t | nativeHeight_ |
| bool | invertColor_ = false |
Protected Attributes inherited from DisplayDriverParallel8RP2040< RGB_T > | |
| int8_t | d0_ |
| int8_t | wr_ |
| int8_t | dc_ |
| int8_t | cs_ |
| int8_t | rst_ |
| size_t | width_ |
| size_t | height_ |
| float | clockDiv_ |
| PIO | pio_ |
| uint | sm_ = 0 |
| uint | offset_ = 0 |
| int | dma_ = -1 |
| bool | busInitialized_ = false |
Protected Attributes inherited from DisplayDriver< RGB_T > | |
| Font5x7< RGB_T > | defaultFont |
Additional Inherited Members | |
Protected Member Functions inherited from DisplayDriverParallel8RP2040< RGB_T > | |
| void | setColumnRowAddress (size_t x, size_t y, size_t w, size_t h) |
| bool | setAddressWindow (size_t x, size_t y, size_t w, size_t h) override |
| bool | beginBus () |
| void | setupPinsAndReset () |
| void | writeCommand (uint8_t cmd) |
| void | writeData16 (uint16_t d1, uint16_t d2) |
| void | writeData8 (uint8_t data) |
| void | writeDataN (std::initializer_list< uint8_t > bytes) |
| virtual bool | setAddressWindow (size_t x, size_t y, size_t w, size_t h)=0 |
Driver for ILI9341 8-bit parallel display controller, driven via RP2040's PIO/DMA (see DisplayDriverParallel8RP2040).
Same power/gamma/MADCTL init sequence as DisplayDriverSPI.h's ILI9341Driver (see that class's doc comment for provenance) - only the bus underneath differs.
| using Rotation = tinygpu::DisplayRotation |
|
inline |
| nativeWidth/nativeHeight | the panel's physical resolution in its native (portrait, MV bit clear) orientation - 240x320 is the common ILI9341 module size and the default; pass your panel's real values if it differs. |
|
inlineoverridevirtual |
Implements DisplayDriver< RGB_T >.
|
inlineoverridevirtual |
Reimplemented from DisplayDriverParallel8RP2040< RGB_T >.
|
inlinestaticprotected |
|
inline |
|
inline |
See DisplayDriverSPI.h's ILI9341Driver::setInvertColor() - same panel quirk, same fix, just re-sent over this bus's begin() instead.
|
inlineoverridevirtual |
Changes the panel's rotation after begin(). Default no-op, for drivers with no such concept (e.g. a fixed-orientation panel, or a desktop/SDL backend) - concrete SPI drivers (ILI9341Driver, ILI9342Driver) override this to reprogram MADCTL.
Reimplemented from DisplayDriver< RGB_T >.
|
inlineoverridevirtual |
Current addressable panel width/height in pixels - for a driver that supports setRotation(), these reflect the current rotation (landscape vs portrait swaps them; see isLandscapeFamily()), not necessarily the panel's native/physical orientation. Callers that need to lay out content (e.g. OutputTinyGPU's scale_to_fit target, or clearScreen()'s band loop) should read these fresh rather than caching their own copy, so a setRotation() call is picked up automatically without needing separate bookkeeping.
Reimplemented from DisplayDriverParallel8RP2040< RGB_T >.
|
protected |
|
protected |
|
protected |
|
protected |