Obsługa kolorowego wyświetlacza LCD-TFT 320×240 za pomocą mikrokontrolera STM32

Teraz można napisać właściwe procedury emulacji magistrali. Będziemy potrzebowali funkcji zapisu komendy WrCmd, zapisu danej WrDatalisting 5.

 

List. 5. Procedury zapisu komendy i danej

 

Procedura zapisu pozycji na ekranie (adresu piksela) została pokazana na listingu 7. Argumentami są współrzędne x i z zakresu 0…319 (liczba 16-bitowa) oraz y – z zakresu 0…239 (liczba 8-bitowa).

 

List. 6. Ustalenie pozycji na ekranie

 

Nie ma tu zabezpieczeń przed przekroczeniem zakresu i użytkownik sam musi zadbać o poprawność określenia pozycji piksela. Dana określająca kolor piksela ma format pokazany na rysunku 2.

Rys. 2. Format danej określającej kolor piksela

Rys. 2. Format danej określającej kolor piksela

 

Kolor czerwony i zielony jest zakodowany na 3 bitach, a kolor niebieski na 2 bitach. Mając do dyspozycji funkcje zapisu danych i ustalenia pozycji na ekranie zapisywanej danej można napisać funkcje zapisującą bitmapę do wyświetlacza. Na listingu 7 pokazano procedurę wyświetlającą bitmapę o wymiarach 240×320 pikseli zapisanej w tablicy bmp[].Wynik działania tej procedury pokazano na fotografii 3.

 

 Fot. 3. Efekt działania procedury z listingu 7

Fot. 3. Efekt działania procedury z listingu 7

 

List. 7. Procedura wyświetlająca pełnowymiarową bitmapę

 

Pełnowymiarowe bitmapy są używane rzadko. Dużo częściej trzeba wyświetlać mniejsze obiekty graficzne. Dlatego potrzebujemy procedur wyświetlających bitmapy o dowolnym rozmiarze i w dowolnym miejscu wyświetlacza. Oczywiście ta dowolność jest ograniczona rozmiarami matrycy. Procedura z listingu 8 wyświetla bitmapę od pozycji określonej w argumentach x i y i o wymiarach określonych w argumentach dx i dy. Ponieważ na ekranie można umieścić kilka bitmap, to argument bmp przekazuje wskaźnik tablicę z wyświetlaną bitmapą.

 

List. 8. Procedura wyświetlenia dowolnej bitmapy

 

Fot. 4. Przykład wyświetlenia dowolnej bitmapy

Fot. 4. Przykład wyświetlenia dowolnej bitmapy

Do pobrania

O autorze