LinkedIn YouTube Facebook
Szukaj

Wstecz
Artykuły

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 Kit

Szymon Panecki

SZYMON PANECKI urodził się 17 lutego 1985 roku w Milanówku. Tytuł inżyniera Elektroniki i Telekomunikacji, a następnie magistra inżyniera na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał kolejno w roku 2008 i 2010. Ponadto tytuł inżyniera Informatyki na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał w roku 2011. Szymon Panecki jest doświadczonym elektronikiem-konstruktorem, który w trakcie swojej zawodowej kariery koncentruje się na definiowaniu i projektowaniu (zarówno w warstwie sprzętowej jak i programowej) systemów wbudowanych opartych na mikrokontrolerach z rdzeniem ARM od różnych producentów, w tym przede wszystkim Infineon Technologies (rodzina XMC1000 i XMC4000), STMicroelectronics (STM32 i STR7), Freescale Semiconductor (Kinetis L) oraz Silicon Labs (EFM32 i Precision32). Obszarem jego szczególnego zainteresowania są systemy wykorzystujące czujniki środowiskowe (wilgotności, ciśnienia, temperatury) oraz przemysłowe i motoryzacyjne interfejsy komunikacyjne, głównie CAN. Szymon Panecki od wielu lat współpracuje z czasopismem "Elektronika Praktyczna" oraz portalem Mikrokontroler.pl, na łamach których publikuje liczne artykuły dotyczące swoich projektów, jak również nowości produktowych firm z branży półprzewodnikowej.