Metody pracy i praktyczne zastosowanie mikrokontrolera MCF5234



Podobne dokumenty
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Konfiguracja pakietu CrossStudio for MSP

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

1.Wstęp. 2.Generowanie systemu w EDK

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

1. Opis. 2. Wymagania sprzętowe:

Instrukcja instalacji oraz obsługi czytników i kart procesorowych dla Klientów SBI Banku BPH S.A.

Instytut Teleinformatyki

dokument DOK wersja 1.0

Spis treści. Opis urządzenia. Pierwsze użycie

Szkolenia specjalistyczne

Widok programatora PonyProgUSB wersja 1.0 oraz jego elementy przedstawiono na poniższym rysunku.

Aplikacja do podpisu cyfrowego npodpis

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

NARZĘDZIE KONFIGURACYJNE VNX SETUP TOOL MODUŁÓW RODZINY VNX ADVANCED

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SystimPlus. Dokumentacja (FAQ) dla wersji: v

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Instrukcja do oprogramowania ENAP DEC-1

CW-HC08 Programowanie mikrokontrolera MC9S08QD4 [2]

Politechnika Śląska w Gliwicach

Programowanie niskopoziomowe

Płytka uruchomieniowa XM64

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Laboratorium Procesorów Sygnałowych

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

Projekt Komputerowych Systemów Sterowania Wymiana danych pomiędzy dwoma sterownikami Siemens S7-300 po sieci Profibus DP

Instrukcja obsługi programu PLOMP PLUS FM

2. Architektura mikrokontrolerów PIC16F8x... 13

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

1 Moduł Modbus ASCII/RTU 3

Estomed2. 1. Wstęp. 2. Instalacja Systemu Estomed Jak zainstalować Estomed2. Hakon Software sp. z o. o. Podręcznik instalacji

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

Spis treści. 1 Moduł Modbus TCP 4

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

Instrukcja użytkownika ARSoft-WZ1

Wprowadzenie do biblioteki klas C++

Użycie AVR Studio do kompilacji AVRUB

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Instytut Teleinformatyki

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

1 Moduł Modbus ASCII/RTU

Ewidencja Wyposażenia PL+

INSTRUKCJA UŻYTKOWANIA CZYTNIKA KART PROCESOROWYCH SYGNET 5v1 IU SY5

Konfiguracja współpracy urządzeń mobilnych (bonowników).

Programowanie w językach asemblera i C

Instrukcja instalacji i obsługi oprogramowania OPTIVA VIEWER

Programator procesorów rodziny AVR AVR-T910

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Instalacja i opis podstawowych funkcji programu Dev-C++

TECHNIKA MIKROPROCESOROWA II

Instrukcja obsługi programu. BlazeVideo HDTV Player v6

Instrukcja instalacji oraz konfiguracji sterowników. MaxiEcu 2.0

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Electronic Infosystems

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

Metody obsługi zdarzeń

Instrukcja aktualizacji oprogramowania (firmware) serwera DESKTOP 1.0 systemu F&Home RADIO.

Tutaj znajdziesz Odpowiedź na: Najczęściej Spotykane Problemy Najczęściej zadawane Pytania

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

MentorGraphics ModelSim

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

TECHNIKA MIKROPROCESOROWA II

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Rozwiązywanie problemów z Javą

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Parametryzacja przetworników analogowocyfrowych

Ćwiczenie 6. Wiadomości ogólne.

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

SimplySign logowanie i rejestracja na komputerze oraz dodanie certyfikatu do programu Płatnik

Spis treści. Integracja programu LeftHand Kadry i Płace z programami LeftHand Pełna Księgowość i LeftHand Mała Firma

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Programowanie procesora Microblaze w środowisku SDK

Poradnik użytkownika pomoc techniczna

Instrukcja obsługi. Karta video USB + program DVR-USB/8F. Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia.

Plaza Oprogramowanie Grzegorz Drzewiecki

Autorzy. Zespół SABUR Sp. Z o.o. Wydanie Data. Sierpień SABUR Sp. Z o. o. Wszelkie prawa zastrzeżone

Instrukcja postępowania w celu złożenia podpisu elektronicznego na dokumentach składanych do SISC za pośrednictwem portalu PUESC.

Sterowniki Programowalne (SP) Wykład 13

Dariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51. Loader LX51 INSTRUKCJA OBSŁUGI DK Wszystkie prawa zastrzeżone

Temat nr 5. System czasu rzeczywistego bazujący na stałopozycyjnym procesorze sygnałowym. LABORATORIUM Procesory i komputery przemysłowe

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Kabel USB 2.0 do połączenia komputerów PCLinq2 (PL-2501) podręcznik uŝytkownika

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Instrukcja korzystania z Systemu Telnom - Nominacje

Nagrywamy podcasty program Audacity

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Konfiguracja Javy. Jak prawidłowo skonfigurować środowisko Java. Jak zacząć? Poradnik dla systemów Windows 7,8, 8.1 i 10. Wersja 1.

Konfiguracja szablonu i wystawienie pierwszej aukcji allegro

5.2. Pierwsze kroki z bazami danych

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Podgląd z rejestratorów IPOX na komputerze z systemem WINDOWS za pomocą programu NVMS-2.0 LITE

Programowanie mikrokontrolerów AVR

Transkrypt:

Metody pracy i praktyczne zastosowanie mikrokontrolera MCF5234 Jan Poniatowski, 171751 (ARR) Michalina Kuczyńska, 171564 (ARR 11 czerwca 2011 Politechnika Wrocławska Wydział Elektroniki Sterowniki Robotów 1

Spis treści 1 Wstęp 3 2 Instalacja środowiska CodeWarrior 3 2.1 Podstawowe składniki środowiska CodeWarrior 10.1.............. 3 3 Moduł PIT (Programmable Interrupts Timer) 9 3.1 Rejestry PIT.................................... 9 3.1.1 PIT Control and Status Register - PCSR................ 10 3.1.2 PIT Modulus Register - PMR...................... 10 3.1.3 PIT Count Register - PCNTR...................... 10 3.2 Przykładowy program............................... 10 4 TPU 11 4.1 Konfiguracja etpu................................ 11 4.2 Generowanie mikrokodu.............................. 12 4.3 Przykładowy program............................... 14 2

1 Wstęp Celem realizowanego projektu było zapoznanie się ze strukturą oraz działaniem płytki ewaluacyjnej z mikroprocesorem ColdFire MCF5234. W ramach realizowanego projektu wykonane zostały podstawowe czynności, na podstawie których będzie możliwe wykorzystanie danego modułu do realizacji bardziej skomplikowanych zadań. W ramach podstawowej realizacji projektu zrealizowana została obsługa podstawowych peryferiów, wymienionych poniżej: uruchomienie przerwań (PIT ), wykorzystanie funkcji procesora czasowego TPU (funkcje PWM, GPIO; inicjalizacja TPU. 2 Instalacja środowiska CodeWarrior Dołączone do dokumentu programy zostały napisane w środowisku CodeWarrior 10.1, które można zainstalować z dołączonej do zestawu płyty (w wersji 32-bitowej) bądź pobrać ze strony freescale.com, jeżeli interesuje nas wersja 64-bitowa. Na stronie głównej grupy Freescale Semiconductors można odnaleźć wiele interesujących informacji na temat pracy oraz porad związanych z rozwiązywaniem problemów. W poniższym sprawozdaniu często będziemy odwoływać się do informacji tam zawartych. 2.1 Podstawowe składniki środowiska CodeWarrior 10.1 CodeWarrior 10.1 jest oprogramowaniem służącym do przygotowywania oraz uruchamiania aplikacji użytkowych na mikrokontrolery marki Freescale. Zarzadzanie wszystkimi projektami odbywa się w tym środowisku, którego użytkowanie nie różni się zbytnio od tych stworzonych do pracy z mikrokontrolerami innych producentów. Na Rysunku 1 zamieszczony został sposób utworzenia nowego projektu. Oba widoczne zaznaczenia dają nam możliwość utworzenia nowego projektu. 3

Rysunek 1: Widok okna tworzenia nowego projektu Wybranie opcji Project... spowoduje pojawenie się okna widocznego na Rysunku 2, wraz z zaznaczonym wyborem typu projektu: Rysunek 2: Widok okna tworzenia nowego projektu W następnych krokach należy wskazać katalog naszego przyszłego projektu. Warto unikać polskich znaków czy spacji (dotyczy całej ścieżki katalogu) - nie można zapewnić, czy nasze 4

przyszłe programy będą się poprawnie kompilować. Na Rysunku 3 zamieszczone zostało okno wyboru urządzenia, na którym będziemy pracować: Rysunek 3: Widok okna wyboru urządzenia Rysunek 4 przedstawia okno wyboru typu połączenia z wybranym urządzeniem - należy zostawić okno bez zmian; jak łatwo można zauważyć, metod tych jest kilka, przystosowanych do różnego rodzaju pracy. 5

Rysunek 4: Widok okna wyboru połączenia z MCF5234 Dodawanie gotowych plików, nagłówków, bibliotek możliwe jest już na samym początku tworzenia nowego projektu. Opcja ta jest również możliwa w innych etapach pracy - informacja o tym zawarta jest w rozdziale 4.2 - Generowanie mikrokodu. 6

Rysunek 5: Widok okna dodawania nowych plików (w trakcie tworzenia projektu) Rozpoczęcie nowego projektu we wskazanym przez nas folderze generuje plik funkcji main.c, wraz z dołączoną do niego standardową biblioteką wejścia-wyjścia stdio.h oraz nagłówkiem support common.h, w którym zadeklarowane są wszystkie peryferia (podglądnięcie zawartości jest możliwe po wybraniu opcji Open Declaration lub po wciśnięciu F3). Na Rysunku 6 zamieszczony został widok okna z przykładowym programem. Wyróżnione zostały elementy, z których działaniem należy się zapoznać. 7

Rysunek 6: Widok okna programu Utworzony został dopiero pierwszy projekt. Co w sytuacji, kiedy jest ich więcej? Praca w środowicku CodeWarrior przysporzy użytkownikom mniej kłopotów, jeżeli będziemy pamiętać o zamykaniu projektów, których akurat nie używamy - może się zdarzyć, że wybierając kompilację jednego projektu, skompilowany zostanie inny. Nie spowoduje to jakichkolwiek niekontrolowanych zmian w naszym projekcie, aczkolwiek możemy poświęcić więcej czasu na zastanawianie się nad przyczyną jakiegoś pojawiajacego się błędu przy kompilacji. Szczegóły widoczne na Rysunku 7: 8

Rysunek 7: Zamykanie nieaktywnych projektów Otwieranie zamkniętych projektów odbywa się w analogiczny sposób: klikamy prawym przyciskiem na ikonę żądanego projektu, następnie wybieramy Open Project. Przydatną opcją środowiska jest również możliwość zmiany perspektywy głównego okna programu - ustawiona może w trybie programowania oraz debugowania. Oba przycisku umiejscowione są w prawym górnym rogu głównego okna programu (Rysunek 8: Rysunek 8: Zmiana perspektywy pracy 3 Moduł PIT (Programmable Interrupts Timer) Model MCF5234 posiada cztery programowalne układy przerwań cyklicznych (PIT), oznaczone jako PIT0 PIT3. Każdy PIT jest 16-bitowym timerem, zapewniającym precyzyjne i regularne interwały przy minimalnym użyciu procesora. Timer może służyć również jako licznik (zliczający w dół, począwszy od wartości zapisanych w rejestrze). W kolejnych akapitach zawarty zostanie opis inicjalizacji timerów oraz przykładowy program służący do użycia ich w celach generowania przerwania przy stałym interwale. Przykład jest przydatny w celuzapoznania się z działaniem przerwania oraz funkcją PIT. Wszystkie przydatne informacje zawarte są w dokumentacji MCF5234 w rozdziale 23. 3.1 Rejestry PIT Moduł PIT (Programmable Interrupts Timer) składa się z trzech 16-bitowych rejestrów: PIT Control and Status Register (PCSR) 9

PIT Modulus Register (PMR) PIT Count Register (PCNTR) Każdy z modułów PIT (PIT0 PIT3) ma własny zestaw podanych rejestrów. Do rejestrów PCSR oraz PMR mamy możliwość zapisy i odczytu z nich, podczas gdy z PCNTR możemy jedynie odczytywać dane. Poniżej zawarte zostały opisy tych trzech rejestrów. 3.1.1 PIT Control and Status Register - PCSR Rejestr PCSR jest odpowiedzialny za działanie timera. To tutaj ustawiane jest włączanie- /wyłączanie przerwań oraz PITa, tutaj ustawiane jest wartość początkowa, od której rozpoczynamy odliczanie w dół, determinująca moment załadowania nowej wartości początkowej. Ważnym elementem, niezbędnym do prawidłowego skonfigurowania rejestru jest ustawianie prescalera (bity 11 8 rejestru PCSR). Konfiguracja i generowanie przerwań wymaga wiedzy o zegarze systemowym, wartościach modułu PIT oraz wartościach prescalera (ustawionej w celu otrzymania pożądanego okresu). Poniżej zamieszczone zostały równania, które zostały użyte do oszacowania okresu dla zegara PIT. T = PIT Timeout Period [Seconds (s)] P = PIT Prescalar M = PIT Modulus Value F = PIT Frequency [Hertz (Hz)] S = System Clock [Hertz (Hz)] /* To determine desired timeout period: */ T = ( P x ( M + 1 ) x 2 ) / S /* To determine PIT modulus value using desired PIT frequency */ 3.1.2 PIT Modulus Register - PMR M = [S / ( 2 x P x F )] { 1 16-bitowy rejestr PMR zawiera wartość, która jest ładowana do licznika PIT, gdy ten osiągnie 0x0000 (warunkiem jest ustawianie PCSR[RLD] (reload) na 1). Gdy bit OVW (overwrite) rejestru PCSR jest ustawiony, wartość PMR jest niezwłocznie przepisana do licznika PIT. Jednocześnie resetowana jest wartość licznika prescalera (0xFFFF). Użytkownik posiada możliwość odczytu/zapisu rejestru PMR. Czytanie z niego zwraca wartość zapisaną w module. Reset ponownie ustawia PMR na 0xFFFF. 3.1.3 PIT Count Register - PCNTR Jest to 16-bitowy rejestr, z którego możliwy jest jedynie odczyt danych. Zapisywanie do niego czegokolwiek nie przyniesie żadnych efektów - zapisane w nim cykle będą odbywały się normalnie. Nie można zagwarantować, że czytanie kolejnych 8 bitów jest jednoznaczne z przeczytaniem wszystkich 16 bitów składających się na rejestr PCNTR. 3.2 Przykładowy program Generalana metoda konfiguracji PITa składa się z trzech kroków: definicja obsługi przerwania, konfiguracja PITa, 10

uruchomienie przerwania PIT. Wszystkie niezbędne informacje na temat konfiguracji rejestrów PIT znajdują się w 23 rozdziale dokumentacji modułu, dostępnej w formie elektronicznej na stronie producenta (pod nazwą MCF5235 Reference Manual, wspierającej również model przez nas wykorzystywany - M CF5234). Zamieszczony poniżej program działa na zasadzie stopera - odlicza minuty, sekundy i milisekundy. Wcześniejsza praca (z wykorzystaniem UARTa) implementowała program, który po skompilowaniu i uruchomieniu wyświetlał wszystkie te wartości. Ze względu na prędkość transmisji danych (nie zapominajmy, że w początkowym założeniu program miał pozwalać na wyświetlanie co najmniej setnych części sekundy) dochodziło do zbyt szybkiego przepełnienia bufora tymczasowego gromadzenia danych, co powodowało błąd już przy około 15 sekundzie działania programu. Z tego względu zrezygnowano z takiej formy wyświetlania danych. Sama konfiguracja UARTa nie jest niczym trudnym: należy dołączyć nagłówek uart support.h, następnie zainicjalizować oraz skonfigurować UARTa w zależności od samych parametrów układu, widocznych w kodzie poniżej: uart init(terminal PORT, SYSTEM CLOCK KHZ, TERMINAL BAUD); 4 TPU etpu jest programowalnym kontrolerem wejścia/wyjścia, wyposażonym we własny procesor i pamięć (w przypadku MCF5234 jest to 6KB), pozwalające na pełne zarządzanie operacjami I/O. Operuje niezależnie od procesora: generuje zdarzenia i instrukcje czasu rzeczywistego, daje dostęp do danych bez potrzeby użycia CPU. W konsekwencji zużycie procesora do obsługi timera jest minimalne lub w ogóle wyeliminowane. etpu obsługuje wiele przerwań, co umożliwia CPU obsługę innych operacji. 4.1 Konfiguracja etpu Do poprawnego działania jednostki etpu wymagane jest dołączenie mikrokodu realizujacego wybrane funkcje. Przykład inicjalizacji etpu dla MCF5234 (funkcja ta musi zostać zawarta w funkcji głównej programu; jej deklaracja znajduje się pliku etpu util.c): /* initialize etpu hardware */ fs_ etpu_ init ( my_etpu_config, ( uint32_ t *) etpu_code, // wskaznik do mikrokodu sizeof ( etpu_ code ),// rozmiar ); kodu ( uint32_ t *) etpu_globals, sizeof ( etpu_globals ) Konfiguracja kanału, polegająca na wybraniu realizowanej przezeń funkcji, umożliwia korzystanie z etpu. Wybrane i odpowiednio ustawione rejestry pozwalają na komunikację z kanałem, co pozwala na zarządzanie opieracjami I/O. To, co i jak należy skonfigurować, zależy oczywiście od zestawu wybranych przez nas funkcji. W dalszej części dokumentu zawarta jest informacja, w jaki sposób można pozyskać żądany mikrokod. 11

4.2 Generowanie mikrokodu Mikrokod jest programem implementującym listę rozkazów procesora zawartego w TPU. Są to instrukcje w postaci kodu maszynowego, którego forma może trochę przerażać - język ten jest bardziej prymitywny od asemblera, co zdecydowanie utrudnia użytkownikowi zrozumienie danych instrukcji. Nie należy się tym jednak martwić; naszym zadaniem jest jedynie odpowiednie wygenerowanie mikrokodu, a nie interpretacja. Dzięki zamieszczonej na stronie aplikacji http://www.freescale.com/webapp/etpu/ jest to proste i bardzo intuicyjne. Na Rysunku 9 zamieszczony został widok selektora funkcji etpu: Rysunek 9: Aplikacja selektora funkcji etpu Jak już zostało wspomniane, etpu posiada własną pamięć - ze względu na jej rozmiar najlepiej wygerować tylko te funkcje, których akurat potrzebujemy. Aplikacja sprawdza, ile pamięci zostanie wykorzystanej przy zgrywaniu wybranych funkcji; nie musimy się więc obawiać o ewentualne przekroczenie limitu. Postępując zgodnie z instrukcjami na stronie nasz zestaw funkcji zostanie skompilowany i gotowy do pobrania. Nam pozostaje dołączenie odpowiednich nagłówków do pliku funkcji głównej. Na Rysunku 10 widoczny jest fragment dołączonego mikrokodu: 12

Rysunek 10: Fragment mikrokodu Poniżej zamieszczony został fragment kodu, wskazujący jakie nagłówki należy dołączyć w celu korzystania oraz konfiguracji etpu : # include " etpu_util.h" # include " etpu_set.h" # include " mcf523x_vars.h" # include " etpu_pwm.h" # include " etpu_gpio.h" Jak już zostało wspomniane wcześniej, plik etpu util.c zawiera makra i prototypy potrzebne do użycia etpu. W pliku etpu set.c zawarty został wygenerowany mikrokod. Pozostałe nagłówki wskazują na to, jakie funkcje były wykorzystywane do obsługi wskazanych przez nas kanałów; w realizowanym projekcie na funkcje PWM przeznaczony został kanał 8, a dla GPIO - 9. # define PWM0 8 # define GPIO0 9 Zarówno użyte funkcje, jak i przeznaczone na nie kanały można z łatwością zmienić, co nie wpływa oczywiście w żaden sposób na działanie naszego programu. Na stronie producenta dostępne są przydatne wskazówki oraz pliki w formacie.pdf, na podstawie których można bardzo dokładnie zapoznać się z możliwościami potrzebnych funkcji etpu: więcej o programowaniu etpu: http://www.freescale.com/files/32bit/doc/app note/an2848.pdf więcej o funkcji PWM: http://cache.freescale.com/files/32bit/doc/app note/an2849.pdf 13

więcej o funkcji GPIO: http://www.freescale.com/files/32bit/doc/app note/an2850.pdf Więcej informacji można znaleźć również w rozdziale 20 dokumentacji mikrokontrolera. Na Rysunku 4 widoczny jest sposób dodawania niezbędnych do pracy plików źródłowych (w takim sam sposób dodaje się odpowiednie pliki nagłówkowe; wystarczy kliknąć na Project Headers i postępować analogicznie): Rysunek 4: Dodawania plików źródłowych i nagłówków Opcja Add Files może automatycznie wygenerować foldery plików źródłowych i nagłówków w katalogu naszego projektu. 4.3 Przykładowy program Zamieszczony w dalszej części dokumentu program steruje natężeniem świecenia diody; w tym celu wykorzystana została funkcja PWM, modulujaca szerokością impulsów. etpu ma swoje dedykowane porty, do których w normalnym trybie pracy (czyli bez żadnych wprowadznoych przez użytkowników zmian) nie mamy dostępu. Dołączenie interfejsu GPIO pozwala na wysterowanie ich jako porty wejścia/wyjścia. Druga dołączona do płytki dioda zapala się przy każdym kolejnym odebranym na wyjściu impulsie. 14