Problém oddelenia HW rozhrania od knižnice TFT
Pri oddeľovaní HW rozhrania od TFT knižnice som narazil na jeden podstatný problém.
Driver každého procesora má 2 časti:
- súbor procesor.h
- súbor procesor.c
V hlavičkových súboroch sú definované potrebné makrá a "makrované funkcie" (príklad: "#define tft_Write_8(C) TFT_WRITE_BITS(C, 8)"). V c súboroch sú definované globálne konštanty (a spočiatku aj definície funkcií TFT_eSPI v podobe vytrhnutých kusov kódu - tento problém je odstránený pre platformu ESP32)
Problém: Makrá a makrované funkcie sú previazané s globálnymi konštantami. Nastáva však problém: Tieto makrá nevyužíva iba HW rozhranie, ale samotná trieda TFT_eSPI (napr. funkcia "drawPixel") !!!
Takže súčasne s pointerom na HW rozhranie musíme zahrnúť aj vyššie uvedené súbory.
Návrh riešenia 1 Zistiť všetky makrá, ktoré využíva TFT_eSPI a prepísať ich ako funckie HW rozhrania
** Zoznam makier (pri súčastnej konfigurácii) **
- CS_L
- CS_H
- SET_BUS_WRITE_MODE
- SET_BUS_READ_MODE
- DMA_BUSY_CHECK
- INIT_TFT_DATA_BUS
- tft_Write_8
- tft_Write_16
- tft_Write_16N
- tft_Write_32C
- tft_Write_32D
- DC_C
- DC_D
Návrh riešenia 2 Metódy TFT_eSPI, ktoré využívajú dané makrá presunúť do HW triedy
** Metódy TFT_eSPI **
- init
- begin_tft_write
- begin_tft_read
- end_tft_read
- spiwrite
- writecommand
- writedata
- readcommand8
- readPixel
- readRect
- readRectRGB
- drawChar
- readAddrWindow
- drawPixel
- pushColor
- endWrite