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

Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



