[KROK-PO-KROKU] Prosta aplikacja interfejsu dotykowego na mikrokontrolerze Atmel SAM D20 (Cortex-M0+)
W następnym (piątym) kroku należy dokonać przyporządkowania wcześniej zdefiniowanych czujników do wyprowadzeń mikrokontrolera, do których są one fizycznie podłączone. Po połączeniu płytki z mikrokontrolerem z płytką z czujnikami dotykowymi przyciski pojemnościowe są podłączone do wyprowadzeń PA6 i PA7 mikrokontrolera. Te piny należy wybrać w polu Sensing Pin odpowiednio dla przycisku Button0 i Button1. Dodatkowo użytkownik może określić poziom wzmocnienia sygnału. W naszym przypadku wystarczająca jest minimalna wartość, a więc 1 (rysunek 15).
Warto w tym miejscu nadmienić, że w przypadku gdy użytkownik korzystałby z płytki QT1 Xplained Pro QTouch Mutual Capacitance i metody akwizycji sygnału Mutual Capacitance, w oknie kreatora w kroku piątym zamiast pola Sensing Pin widniałyby dwa pola: X line oraz Y line.
Rys. 15. Krok piąty tworzenia projektu programistycznego – przyporządkowanie wyprowadzeń mikrokontrolera do czujników
W kolejnym (szóstym) kroku użytkownik określa czy chce korzystać z dedykowanego dla interfejsów dotykowych debugera/analizatora QDebug. Jeśli tak, to konieczne jest wybranie interfejsu debugowania (SWD lub SPI). Dodatkowo w tym kroku możliwe jest określenie liczby próbek branych pod uwagę do interpretacji czy dotknięcie miało miejsce (parametr Filter Level) oraz aktywowanie funkcji Auto oversample (parametr Auto OS), która w przypadku braku stabilnego sygnału pomiarowego sama wyznacza liczbę próbek branych pod uwagę do interpretacji czy dotknięcie miało miejsce (rysunek 16).
Rys. 16. Krok szósty tworzenia projektu programistycznego – podjęcie decyzji odnośnie wartości parametrów Filter Level/Auto OS oraz używania narzędzia QDebug
Po przejściu do siódmego, ostatniego już kroku procesu tworzenia projektu programistycznego kreator wyświetla podsumowanie, które jest spisem ustawień wykonanych przez użytkownika w poprzednich krokach (rysunek 17). Po wciśnięciu przycisku Finish stworzony zostanie projekt programistyczny, do którego dołączony zostanie wygenerowany na podstawie ustawionej konfiguracji kod źródłowy interfejsu dotykowego.
Rys. 17. Krok siódmy tworzenia projektu programistycznego – podsumowanie
Kod źródłowy pozwalający na sterowanie interfejsem dotykowym został dodany do projektu programistycznego na etapie jego tworzenia. Elementem brakującym jest jeszcze kod źródłowy wymagany do sterowania portami wejścia/wyjścia (I/O) w celu włączania i wyłączania diod LED. API do portów I/O można w łatwy sposób dodać do projektu korzystając z narzędzia Atmel Software Framework. Uruchomić je można z menu głównego Atmel Studio: ASF -> ASF Wizard (rysunek 18). Otworzy się nowe okno o nazwie ASF Wizard, które podzielone jest na dwie kolumny: lewą z dostępnymi komponentami oprogramowania oraz prawą z aktualnie używanymi komponentami oprogramowania. Należy wyszukać w lewej kolumnie komponent PORT – GPIO Pin Control i przenieść go do prawej kolumny. Dzięki temu API do portów I/O zostanie dodane do projektu (rysunek 19).
Rys. 18. Sposób uruchomienia narzędzia ASF Wizard
Rys. 19. Dodanie do projektu programistycznego komponentu oprogramowania z API do portów I/O
Na tym etapie można przystąpić do pisania kodu źródłowego aplikacji. W tym celu zmodyfikowany został główny plik projektu, a więc main.c. W pierwszej kolejności zadeklarowane zostały dwie zmienne do przechowywania aktualnego stanu przycisków.
uint8_t button1_state; uint8_t button2_state;