Mikrokontrolery Infineon XMC4500 w praktyce, część 5. Obsługa kolorowego wyświetlacza LCD TFT
Realizacja aplikacji
Pierwszym etapem realizacji aplikacji jest stworzenie nowego projektu typu DAVE CE Project.
Opis tworzenia projektu w pakiecie DAVE 3 znaleźć można w artykule „Mikrokontrolery Infineon XMC4500 w praktyce, część 3”. |
Dalej konieczne jest dodanie do projektu plików biblioteki wyświetlacza. Aby to zrobić, należy w folderze projektu stworzyć folder (np. o nazwie LCD) i przenieść do niego pliki biblioteki – lcd.c i lcd.h. Podczas kompilacji nowy folder i pliki zostaną automatycznie rozpoznane przez pakiet DAVE 3 i dodane do drzewa projektu w oknie zarządzania projektami (rysunek 8).
Rys. 8. Okno zarządzania projektami po dodaniu do drzewa projektu folderu z plikami biblioteki wyświetlacza
Następnie do projektu dodać należy cztery komponenty DAVE Apps IO003. Przyjmą one nazwy IO003/0, IO003/1, IO003/2 oraz IO003/3. Dla wygody można nadać im etykiety (przykładowo komponentowi IO003/0 etykietę LCD_RESET, komponentowi IO003/1 etykietę LCD_CS, komponentowi IO003/2 etykietę LCD_DATA i komponentowi IO003/3 etykietę LCD_CLOCK) – rysunek 9.
Rys. 9. Dodane do projektu cztery komponenty IO003 z nadanymi etykietami
Gdy komponenty są już dodane do projektu, należy każdemu z nich przyporządkować wyprowadzenie mikrokontrolera, odpowiednio komponentowi IO003/0 wyprowadzenie P1.8, komponentowi IO003/1 wyprowadzenie P1.9, komponentowi IO003/2 wyprowadzenie P1.10 i komponentowi IO003/3 wyprowadzenie P1.11 (rysunek 10).
Rys. 10. Przypisane komponentom IO003 wyprowadzenia mikrokontrolera
Domyślnym trybem pracy komponentów IO003 jest odczytywanie stanów logicznych z wyprowadzeń mikrokontrolera. Wszystkie komponenty IO003 projektu mają zgodnie z założeniami aplikacji wystawiać na wyprowadzeniach mikrokontrolera stany logiczne, dlatego ich tryb pracy musi zostać zmieniony. W tym celu należy otworzyć okno ustawień każdego z komponentów i w panelu Output Driver Enabled zaznaczyć opcję Output Enable (rysunek 11).
Rys. 11. Ustawienie trybu pracy portu
Opis powyższych czynności (dodawanie do projektu komponentów DAVE Apps, przyporządkowanie komponentom wyprowadzeń mikrokontrolera, ustawienie parametrów pracy komponentów) można znaleźć w artykule „Mikrokontrolery Infineon XMC4500 w praktyce, część 2”. |
Wymagane przez aplikację komponenty DAVE Apps zostały dodane do projektu oraz konfiguracja komponentów została zakończona, dlatego kolejnym krokiem jest uruchomienie generatora kodu, który na bazie wykonanych czynności wytworzy pliki z kodem źródłowym i doda je do projektu.
W tym momencie można przejść do edycji kodu pliku main.c. Dopisać do niego należy:
- Dyrektywę #include dotyczącą biblioteki wyświetlacza, co umożliwi wywoływanie funkcji z tej biblioteki w piku main.c,
- Deklarację tablicy z danymi pliku graficznego BMP (konwersję pliku graficznego do postaci tablicy można wykonać za pomocą udostępnianego razem z bibliotekę programu AtomSoftTech Nokia 6100 Color LCD Image to Hex Converter – rysunek 12),
- Wywołanie funkcji inicjalizującej wyświetlacz,
- Wywołanie funkcji wypełniającej ekran wybranym kolorem,
- Wywołanie funkcji wypisującej tekst na ekran,
- Wywołanie funkcji wyświetlającej obraz z tablicy pliku graficznego BMP.
Rys. 12. Okno programu AtomSoftTech Nokia 6100 Color LCD Image to Hex Converter
Po wymienionych zmianach zawartość pliku main.c powinna prezentować się tak jak na listingu 1 (dla przejrzystości kodu z listingu usunięto wielobajtową zawartość tablicy pliku graficznego).
List. 1. Kod źródłowy aplikacji
/* * Main.c * * Created on: 30-12-2012 * Author: admin */ #include //Declarations from DAVE3 Code Generation (includes SFR declaration) #include "LCD/lcd.h" const unsigned char DAvE3[25355] = {…}; int main(void) { // status_t status; // Declaration of return variable for DAVE3 APIs (toggle comment if required) DAVE_Init(); // Initialization of DAVE Apps LCDInit(); LCDFill(WHITE); LCDPutStr("Infineon",2,2,1,BLACK,WHITE); LCDPutStr("XMC4000 MCUs",20,2,1,BLACK,WHITE); LCDPutStr("with ARM",40,2,1,BLACK,WHITE); LCDPutStr("Cortex-M4 core",60,2,1,BLACK,WHITE); LCDSetCircle(80,40,8,RED); LCDWriteBMP(DAvE3,2,2); while(1) { } return 0; }
Program jest gotowy. Można go teraz skompilować, wgrać do pamięci mikrokontrolera i uruchomić lub debugować. Kolejne etapy wyświetlania (w pierwszym kroku tekst, w drugim figurę, w trzecim obrazek) pokazano na fotografii 13.
Fot. 13. Kolejne etapy wyświetlania realizowane przez przykładową aplikację
Literatura
[1] www.sparkfun.com Nokia 6100 LCD Display Driver, rev. 1, J.P. Lynch [2] SiD15G00 Series datasheet [3 ]www.kamami.pl KAmodTFT2. Moduł z kolorowym wyświetlaczem graficznym z telefonu Nokia 6100/6610, ver. 1.0 [4] http://ep.com.pl/files/1827.pdf, Wyświetlacz telefonu Nokia 6100. Obsługa sterownika Epson S1D15G00, Tomasz Jabłoński, 2010 [5] www.infineon.com Evaluation Board for XMC4000 Family, XMC4500 Relax KitSzymon Panecki