ZL31ARM: implementacja funkcji graficznych 2D

Kolejną rzeczą jest pobranie załącznika „Przykładowy program dla STM32” dla modułu KAmodTFT2, który zostanie zmodyfikowany dla potrzeb prezentowanego projektu. Następujące pliki należy skopiować do katalogu projektu i dodać jej w IDE µVision do grupy User: board.h, graphics.c, lcdlib.c, lcdlib.h, main.c, SystemInit.c. W pliku main.c należy usunąć linijki związane z obsługą czujnika przypieszenia MEMS LIS35, aby program został prawidłowo skompilowany. Na rysunku 5 pokazano strukturę projektu.

 

Rys. 5. Drzewo projektu

Rys. 5. Drzewo projektu

 

 

Aby mieć możliwość sterowania programem należy zmodyfikować w pliku board.h jedynie linie związane z joystickiem w następujący sposób:

Następnie zmieniamy wiersz na początku powyższych plików z #include „stm32f10x_lib.h” na #include „stm32f10x.h”. Konfiguracja portów wykorzystywanych przez joystick oraz wyświetlacz w pliku SystemInit.c przebiega następująco:

Konfiguracja interfejsu SPI:

Rysowanie punktu

W pliku lcdlib.c znajdują się gotowe definicje kolejnych funkcji, które zostaną wykorzystane przy obsłudze wyświetlacza:

Inicjalizację wyświetlacza wykonuje się raz na początku działania programu. Gotowa funkcja LCDSetPixel() posłuży jako podstawa do przenoszenia kolejnych punktów na wyświetlacz. Przyjmuje ona 3 parametry: dwie wartości współrzędnych (x,y) z zakresu od 1 do 130 włącznie, oraz 12-bitową wartość koloru (paleta typu BRG, 4 bity/kolor = 16 odmian podstawowego koloru). Tak więc, aby wyświetlić punkt o współrzędnych (x=50,y=100) i kolorze G=4, R=8, B=12 (wartości te są odniesione do maksymalnej, czyli 15) należy wykonać następującą instrukcję:

O autorze