Mikrokontrolery Infineon XMC4500 w praktyce, część 6. Obsługa zegara czasu rzeczywistego (RTC)
Opis aplikacji
W celu pokazania sposobu obsługi zegara czasu rzeczywistego mikrokontrolera XMC4500 zrealizowana została przykładowa aplikacja, która ma za zadanie odmierzać czas i aktualizować datę oraz udostępniać na bieżąco te informacje użytkownikowi na wyświetlaczu LCD TFT.
Aplikacja została przygotowana przy użyciu pakietu do tworzenia i rozwijania oprogramowania DAvE 3, a jako platforma sprzętowa posłużyły: płytka uruchomieniowa XMC4500 Relax Kit oraz moduł z wyświetlaczem KAmodTFT2. Jako że wykorzystane komponenty fizyczne są takie same jak w przypadku aplikacji opisanej w poprzednim artykule („Mikrokontrolery Infineon XMC4500 w praktyce, część 5. Obsługa kolorowego wyświetlacza LCD-TFT”), zastosowano również ten sam schemat połączeń między nimi (rysunek 2).
Rys. 2. Schemat połączeń pomiędzy wyświetlaczem LCD i zestawem XMC4500 Relax Kit
Fot. 3. Widok modułu KAmodTFT dołączonego do zestawu XMC4500 Relax Kit
Schemat blokowy aplikacji przedstawiono na rysunku 4. Mikrokontroler wykonywanie programu rozpoczyna od zainicjowania wyświetlacza, a następnie przechodzi do nieskończonej pętli, w której nie są mu przewidziane żadne zadania. Pomimo tego mikrokontroler nie pozostaje bezczynny. Co sekundę zegar czasu rzeczywistego zgłasza przerwanie sygnalizujące zwiększenie wartości licznika Time Counter o jeden, co odpowiada upłynięciu kolejnej sekundy. W momencie zgłoszenia przerwania mikrokontroler odczytuje aktualny stan czasu i daty, a następnie wyświetla te informacje na wyświetlaczu.
Rys. 4. Schemat blokowy działania aplikacji
Realizacja aplikacji
Jak już to zostało wspomniane, platforma sprzętowa wymagana do zrealizowania aplikacji wykorzystującej zegar czasu rzeczywistego jest taka sama jak w przypadku aplikacji sterującej wyświetlaczem. Dzięki temu możliwe jest też skorzystanie z projektu programistycznego tejże aplikacji, który może być punktem wyjściowym do zrealizowania omawianej w tym artykule aplikacji.
W projekcie programistycznym aplikacji sterującej wyświetlaczem użyto czterech komponentów DAvE Apps typu IO003, z których każdy odpowiada innej linii sygnałowej łączącej mikrokontroler z wyświetlaczem, co pozwala na komunikację między mikrokontrolerem a wyświetlaczem. Aby móc skorzystać z bloku peryferyjnego o nazwie zegar czasu rzeczywistego, należy dodać do listy używanych komponentów DAvE Apps dodatkowy komponent – RTC001. Razem z nim automatycznie dodane zostaną dwa powiązane z nim komponenty – CLK001 oraz NVIC_SCU001 (rysunek 5).
Rys. 5. Lista użytych w aplikacji komponentów DAvE Apps
W tym momencie można wykonać konfigurację komponentu RTC001. Dostępne są dwie zakładki: RTC Configuration oraz Alarm Configuration. Pierwsza z zakładek przewidziana jest do konfiguracji aspektów działania zegara czasu rzeczywistego związanych z czasem i datą. Udostępnia ona opcje pozwalające na: włączenie zegara czasu rzeczywistego (rozpoczęcie jego działania nastąpi od razu w momencie uruchomienia programu), ustawienie wartości początkowych czasu i daty, wybranie zdarzeń generujących przerwania (źródłem przerwania może być zmiana wybranej jednostki czasu: sekundy, minuty, godziny, dnia, miesiąca, roku) oraz wpisanie nazwy funkcji obsługującej przerwania.
Druga zakładka przewidziana jest do skonfigurowania alarmu zegara czasu rzeczywistego. Dostępne w niej opcje są analogiczne do opcji z pierwszej zakładki i pozwalają one na: włączenie działania alarmu, ustawienie czasu i daty alarmu, włączenie wybranych zdarzeń generujących przerwania oraz wpisanie nazwy funkcji obsługującej przerwania.
Aby aplikacja realizowała przyjęte wcześniej założenia, należy w zakładce RTC Configuration włączyć zegar RTC, ustawić początkowe wartości daty i czasu, włączyć generowanie przerwań co sekundę oraz wpisać nazwę funkcji obsługującej przerwania. Opcje zakładki Alarm Configuration nie wymagają zmian. Konfigurację komponentu RTC001 zgodną z przedstawionym opisem zilustrowano na rysunku 6.
Rys. 6. Zakładki konfiguracyjne komponentu RTC001