HC12 i CodeWarrior Nie za krótkie wprowadzenie do tematu

Podobne dokumenty
Lekcja 6 Programowanie - Zaawansowane

Cyfrowe Ukªady Scalone

Ukªady Kombinacyjne - cz ± I

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

Lekcja 5 Programowanie - Nowicjusz

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie offline.

Kurs obsªugi interfejsu I2C.

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

ROZDZIAŁ 1 Instrukcja obsługi GRAND HAND VIEW III

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Systemy wbudowane Mikrokontrolery

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

SAMOCHODOWA KAMERA HD

Jak zaprogramować procesor i. wgrać firmwar-e do yampp3usb. Copyright SOFT COM sp. z o. o.

CW-HC08 Programowanie mikrokontrolera MC9S08QD4 [2]

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

Lekcja 2 - BUDUJEMY I CZARUJEMY

PERSON Kraków

Zarządzanie Zasobami by CTI. Instrukcja

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X

Spis zawartości Lp. Str. Zastosowanie Budowa wzmacniacza RS485 Dane techniczne Schemat elektryczny

Analiza wydajno±ci serwera openldap

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Lekcja 12 - POMOCNICY

Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare)

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Karta adaptacyjna GSM

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

VinCent Office. Moduł Drukarki Fiskalnej

Użytkowanie elektronicznego dziennika UONET PLUS.

Komunikacja sterownika z rodziny Micro800 z Falownikiem PowerFlex40 przy pomocy sieci DeviceNet.

CYFROWY WYŚWIETLACZ POŁOŻENIA TNP 10

Skrócony opis instalacji Sympodium DT770 Interaktywny ekran z cyfrowym piórem

O autorze... 9 Wprowadzenie... 11

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Type ETO2 Controller for ice and snow melting

Instrukcja obsługi. Sterownik ścienny KJR10B/DP

Konfiguracja po czenia pomi dzy serwerem OPC, a sterownikiem PLC dla sieci Profibus

EC1000 KATALOG SYSTEMÓW STEROWANIA

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

2. Architektura mikrokontrolerów PIC16F8x... 13

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Urządzenia do bezprzerwowego zasilania UPS CES GX RACK. 10 kva. Wersja U/CES_GXR_10.0/J/v01. Praca równoległa

CW-HC08 Programowanie mikrokontrolera MC9S08QD4

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Instrukcja obsługi programu Pilot PS 5rc

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

MultiTool instrukcja użytkownika 2010 SFAR

EC4P Pierwszy program w 6 krokach

Zasilacz stabilizowany 12V

Instrukcja wgrywania synoptyki pola (wersja modelu danych do 634)

STRONA GŁÓWNA SPIS TREŚCI. Zarządzanie zawartością stron... 2 Tworzenie nowej strony... 4 Zakładka... 4 Prawa kolumna... 9

Programator pamięci EEPROM

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Opis ogólny AL154SAV5.HT

CELAB. System Informatyczny. Punkt przyjęć krok po kroku LTC 1

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Lekcja 3 Banki i nowe przedmioty

Systemy mikroprocesorowe - projekt

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV

s FAQ: 24/PL Data: DD/MM/RRRR

SKRÓCONA INSTRUKCJA OBSŁUGI CR-500- HD

Elementy podłączeniowe.

Lekcja 3 - BANKI I NOWE PRZEDMIOTY

Instrukcja programu PControl Powiadowmienia.

raceboard-s Szybki start

STEROWNIK PRZEPŁYWOMIERZA Z WYŚWIETLACZEM LED NA SZYNĘ DIN SPR1

Przekaźniki czasowe H/44. Przekaźniki czasowe. Przekaźnik czasowy opóźnienie załączania EN 61810

Siemens IO-Link. Smart TIA integration of sensors and actuators

Analityka SAP ERP on HANA

KB-01. Sterownika silnika krokowego bipolarnego dwufazowego INSTRUKCJA OBSŁUGI. 9. Eksploatacja sterownika KB-01:

Sterownik nagrzewnicy elektrycznej HE

CHEVROLET MYLINK. Krótki przewodnik

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

INSTRUKCJA OBS UGI

Interfejs RS485-TTL KOD: INTR. v.1.0. Wydanie: 2 z dnia Zastępuje wydanie: 1 z dnia

BCS Manager Instrukcja Obsługi

SZABLONY KOMUNIKATÓW SPIS TREŚCI

LABORATORIUM INFORMATYKI 0

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Radiowy miernik opadów Nr art Przekaz danych następuje na częstotliwości 433 MHz, bez konieczności instalowania przewodów.

Instrukcja obsługi. Oprogramowanie SAS 31

ZL11ARM. Uniwersalna płyta bazowa

Archiwum Prac Dyplomowych

Lab. 02: Algorytm Schrage

Cyfrowy włącznik czasowy z lampką Nr produktu

Sterownik Silnika Krokowego GS 600

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

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

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

Instrukcja obsługi dla punktów wkładań i otwierania zegarów

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

INSTRUKCJA OBSŁUGI TERMOMETR CYFROWY TES-1312A

Jeżeli w komputerze była już zainstalowana inna wersja Javy może pojawić się komunikat

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

Transkrypt:

Politechnika Wrocªawska Wydziaª Elektroniki Systemy Mikroprocesorowe w Automatyce Seminarium HC12 i CodeWarrior Nie za krótkie wprowadzenie do tematu Autor: Mateusz Cholewi«ski 3 listopada 2009

Pragn podzi kowa dr in». Markowi Wnukowi za cenne uwagi i czas, który przeznaczyª na przejrzenie i poprawienie tego dokumentu. Skªadam równie» podzi kowania dla czªonków Koªa Naukowego KoNaR za ukierunkowanie i pomoc przy projekcie. 1

Spis tre±ci 1 Wprowadzenie 3 1.1 Mikrokontrolery HC12................................ 3 1.2 Moduª HC12 i pªytka testowa............................ 4 1.3 Interfejs BDM..................................... 4 1.4 Code Warrior..................................... 4 1.4.1 Wiadomo±ci ogólne.............................. 4 1.4.2 Instalacja................................... 4 1.4.3 Processor Expert i Device Initialization................... 5 1.4.4 Beans..................................... 5 2 Projekt 6 2.1 Tworzenie i parametry projektu........................... 6 2.2 Wygl d ±rodowiska.................................. 6 3 Przykªadowe implementacje 9 3.1 wiec ca dioda.................................... 9 3.2 Przerwanie cykliczne................................. 10 3.3 Przetwornik ADC................................... 11 3.4 Generator sygnaªu PWM............................... 12 4 Podsumowanie 15 2

Rozdziaª 1 Wprowadzenie 1.1 Mikrokontrolery HC12 HC12 jest rodzin szesnastobitowych mikrokontrolerów wyprodukowanych przez Freescale Semiconductors [1]. Mikrokontroler z tej rodziny zostaª po raz pierwszy wyprodukowany w poªowie lat 90-tych. Byª naturalnym rozwini ciem modelu HC11 i szczególnie podkre±lano, i» wykazuje kompatybilno± z programami napisanymi na HC11. Warto wspomnie,»e rodzina 8-bitowych mikrokontrolerów HC11 byªa bardzo rozpowszechniona, m.in. w technice motoryzacyjnej i zastosowaniach robotycznych (równie» w±ród amatorów). Gªówne ró»nice to szesnastobitowa architektura, kilka dodatkowych instrukcji, wiele nowych trybów adresowania, znacznie efektywniejsza implementacja listy rozkazów, szybszy zegar i wi ksza ilo± pami ci. Poni»ej przedstawiono najistotniejsze cechy wyró»niaj ce mikrokontroler HC9S12A64 [2]: 16 bitowa jednostka centralna CPU12 64 kb pami ci FLASH 4 kb pami ci RAM 1 kb pami ci EEPROM 8 kanaªowy, 10-o bitowy przetwornik ADC 16-o bitowy, 8-o kanaªowy timer modulator PWM - 7 kanaªów 8-o bitowych. interfejsy SCI (szeregowy asynchroniczny), SPI (szeregowy synchroniczny), magistrala I 2 C interfejs BDM (Background Debug Mode) wbudowane instrukcje FuzzyLogic Z punktu widzenia u»ytkownika i programowania urz dzenia, najpot»niejszym narz dziem jest interfejs BDM. Za jego pomoc mo»emy, w czasie trwania programu, podgl da warto±ci zmiennych, a co wi cej, nawet je zmienia. Pozwala to na ªatwe i szybkie odnajdowanie bª dów w napisanym programie przez sprz tow realizacj pracy krokowej oraz puªapek (breakpoint). Nale»y tak»e wspomnie o du»ej ilo±ci portów, co daje du» elastyczno± i ogromne mo»liwo±ci. Mo»emy wykorzysta wy±wietlacz LCD, generowa sygnaªy PWM, ±wieci linijk diodow, poª czy si z komputerem, a mimo tego pozostaje jeszcze wiele niewykorzystanych wej± /wyj±. 3

1.2 Moduª HC12 i pªytka testowa Podczas demonstracji wykorzystywany byª moduª z mikrokontrolerem HC12[4]. Sam moduª stanowi autonomiczn cz ±, która (po zaprogramowaniu) wymaga tylko 5V zasilania. Do nauki programowania i testowania aplikacji wykonano pªytk, opart na pªytce uniwersalnej. Pªytka zawiera: sekcj zasilania, opart o mostek prostowniczy (zapobiega bª dnej polaryzacji wtyczki zasilania) i stabilizator LM7805; dodatkowo napi cie +5V jak i masa zostaªy wyprowadzone na igªy, sekcje komunikacji, opart na ukªadzie MAX232N, zestaw diód LED, 2 potencjometry (do testowania przetwornika ADC i do wysterowania kontrastu wy±wietlacza LCD), zª cze wy±wietlacza LCD stowarzyszone z portem A. Dodatkowo PortA i PortB mikrokontrolera zostaª wyci gni ty na igªy. Takie rozwi zanie pozwala na szybkie ª czenie i modykacj poª cze«mi dzy mikrokontrolerami i innymi urz dzeniami. 1.3 Interfejs BDM Do debugowania i programowania wykorzystywany jest interfejs TBDML autorstwa Daniela Malika (wykorzystano projekt OSBDM/TBDML R. Kuczaja[5]). Podª czany jest do komputera za pomoc ininterfejsu USB. Jedn z wa»niejszych zalet takiego rozwi zania, jest mo»liwo± zasilania moduªu wprost z programatora (do 500 ma w standardowym porcie, teoretycznie 3A w Power USB). Wi cej w [3] 1.4 Code Warrior 1.4.1 Wiadomo±ci ogólne CodeWarrior jest zintegrowanym ±rodowiskiem programistycznym stworzonym przez rm Metrowerks. Dzi± rozwija je i sprzedaje Freescale Semiconductors. Pakiet zawiera wiele pomocnych narz dzi - podczas tworzenia nowego projektu jeste±my zasypywani ró»nymi propozycjami. Jednocze±nie sam nie jest wolny od bª dów - pozostawanie prze¹roczystych pasków i artefakty to co± normalnego. 1.4.2 Instalacja Istnieje wiele wersji Code Warriora dla ró»nych mikrokontrolerów. Nale»y zawsze pami ta, by pobra odpowiedni aplikacj. W przypadku naszego mikrokontrolera musimy ±ci gn Code Warrior... Sama instalacja przebiega jak w wi kszo±ci programów na Windows. Niestety, darmowa (darmowe wersje maj ograniczenie ilo± kodu i liczby plików w projekcie, s oznaczone skrótem SE - Special Edition) jest tylko wersja dla Windows - wersja na Linuxa jest pªatna. Mo»na jednak uruchomi CW w wirtualnej maszynie, cho nie wiadomo jak b dzie np. z RS. 4

1.4.3 Processor Expert i Device Initialization Code Warrior nie byªby tak niezwykªym ±rodowiskiem, gdyby nie Processor Expert (PE) i Device Initialization (DI, rmy UNIS). S to nakªadki, uªatwiaj ce pisanie programów. Uªatwienie w PE sprowadza si do wybierania myszk interesuj cego nas peryferium, ustawienia opcji i przeci gni cia po» danej funkcji danego peryferium do pliku projektu. Device Initizalization pozwala tylko na ªatw inicjalizacj peryferiów - wszystkie funkcje (dostarczane przez PE w poprzednim przypadku) musimy w DI ju» sami napisa. PE pozwala nam na nie pami tanie do czego sªu»y dany rejestr lub co trzeba robi po kolei, aby uruchomi przetwornik ADC. Pewna znajomo± rejestrów i zasad post powania jest ju» potrzebna przy wykorzystywaniu DI. Obie nakªadki wprowadzaj niesamowity komfort pracy. Dla pocz tkuj cych najlepszy jest PE (mo»na zawsze podejrze co tak naprawd robi funkcja wygenerowana w PE), dlatego te» wªa±nie jemu b dzie po±wi cony ten raport. Nale»y jednak»e mie ±wiadomo±,»e cedowanie wszystkich aspektów na automatyczne narz dzie, poci ga za sob skutki, mog ce by dosy nieprzyjemne. PE w generowanych plikach wstawia komentarze Write your code here lub Write local variables denitions here. Nale»y si mocno trzyma tych wskazówek, gdy» umieszczenie kodu powy»ej tego zapisku skutkuje utrata tego» kodu podczas generacji nowej wersji przez PE. Równie» czasem nie jest zaznaczone, gdzie mo»na pisa. Jednak»e po pewnym czasie nabiera si wyczucia, co gdzie mo»na umie±ci. Kod generowany przez PE nie zawsze jest optymalny lub czasami nawet dobry. Nale»y zawsze o tym pami ta, szczególnie podczas pisania du»ych projektów. 1.4.4 Beans Fasolki (beans) to nic innego jak podstawowe funkcje stowarzyszone z elementami mikrokontorlera, jak np. rdze«cpu, peryferia CPU itd., zamkni te w obiekcie. Takie zgrupowanie w jednym miejscu (obiekcie) niesamowicie poprawia i przyspiesza prac. 5

Rozdziaª 2 Projekt 2.1 Tworzenie i parametry projektu Po instalacji i uruchomieniu Code Warriora pojawia si monit przedstawiony na rysunku 2.1. Wybieramy opcj Create New Project. Czeka nas teraz szereg pyta«, na które odpowiadamy domy±lnie, poza nast puj cymi: pytanie o Processor Expert (rysunek 2.1); odpowiadamy Yes, wybór urz dzenia ª cz cego mikrokontroler z CW (rysunek 2.1); wybieramy tbdml je±li wykorzystujemy wspomniany interfejs, ostatnie pytanie dotyczy obudowy mikrokontrolera; wykorzystuj c opisywany powy»ej moduª, wybieramy wersj 80-o nó»kow (rysunek 2.1). Po ustawieniu wszystkich opcji, CW wygeneruje niezb dne pliki i przygotuje dla nas ±rodowisko. 2.2 Wygl d ±rodowiska Na rysunku 2.2 przedstawiony jest wygl d przykªadowego, pustego jeszcze projektu. W lewej cz ±ci zebrane s najwa»niejsze elementy naszego projektu. Na niebiesko zaznaczony jest przycisk Make. Z jego pomoc kompilujemy nasz projekt. Na czerwono oznaczony jest przycisk który powoduje kompilacj, wysªanie programu i przej±cie w tryb debugowania. Na pocz tku nale»y klikn przycisk Make; stworzony zostanie plik o takiej samej nazwie jak nasz projekt i plik Events.c, który zawiera obsªug przerwa«. Wszystkie te pliki pojawi si w polu zaznaczonym seledynow ramk. rodkowe okno zawiera ustawienia samego mikrokontrolera. W polu Clock settings -> Input Clock -> Clock frequency ustawiamy pr dko± mikrokontrolera. Pr dko± wewn trznej szyny danych jest dwukrotnie mniejsza. W polu Clock settings -> Input Clock -> Clock type ustawiamy ¹ródªo zegara mikrokontrolera. W prawym górny rogu znajduje si rysunek pogl dowy mikrokontrolera. Je±li powi kszymy okno to poka» si opisy ka»dego pinu wraz z funkcj jak aktualnie peªni. W prawym dolnym rogu, w oknie Bean Selector przedstawione s wszystkie peryferia mikrokontrolera. Wybieramy z menu po» dan funkcj i klikamy dwukrotnie. Funkcja i odpowiednie pliki zostaj dodane do projektu. 6

Rysunek 2.1: Ekran powitalny Rysunek 2.2: Processor Expert Rysunek 2.3: Urz dzenie ª cz ce mikrokontroler z PC 7

Rysunek 2.4: Wybór obudowy Rysunek 2.5: Menu gªówne tu» po ustawieniach 8

Rozdziaª 3 Przykªadowe implementacje 3.1 wiec ca dioda Przed przyst pieniem do pracy musimy zadba, aby jedna z nó»ek diody byªa podª czona do wybranej przez nas nó»ki mikrokontrolera (nale»y pami ta o wstawieniu rezystora ograniczaj cego, np 220Ω). Musimy tak»e przyj konwencj jakim stanem ±wiecimy: wysokim czy niskim. Dobrym zwyczajem jest uruchamianiem urz dze«stanem niskim. Wi kszo± mikrokontrolerów zaraz po ustawia porty dwukierunkowe jako wej±ciowe, co przy zastosowaniu wbudowanych (lub zewn trznych) rezystorów podci gaj cych (pull-up), daje stan wysoki (1). W przypadku, np. podª czonego silnika skutkuje to natychmiastowym, niekontrolowanym uruchomieniem urz dzenia. Nale»y wspomnie, i» CW pozwala na ustawienie pocz tkowego stanu danej nó»ki. Przy pierwszym uruchomieniu projektu nale»y u»y polecenia Generate code lub Make, które kryj si pod odpoiwednimi przyciskami, aby pojawiªy si pliki i struktura projektu. Zaªó»my,»e dioda podª czona jest do portu A, do wyj±cia 0. Wybieramy w Bean Selector I/O port: A. W menu wida poszczególne beany. Mamy do wyboru kontrolowanie pojedynczego bita, kilka bitów jak i caªe bajty. Wybieramy BitIO i ustawiamy opcje tak jak na rysunku 3.1. Bean jest tak ustawiony,»e po wgraniu programu na mikrokontroler, dioda od razu za±wieci. Je±li teraz klikniemy na przycisk oznaczony plusem przy Bit1:BitIO w oknie po lewej stronie, to rozwinie si menu funkcji w jakie wyposa»ony jest nasz bean. Po najechaniu kursorem myszki na dowoln funkcj, uzyskamy podpowied¹ co dana funkcja robi. Odznaczmy NegValue - funkcja ta pozwala na zanegowanie stanu na porcie. B dzie przydatna przy obsªudze przer- Rysunek 3.1: Wybór beana 9

Rysunek 3.2: Bean przerwania cyklicznego Rysunek 3.3: Ustawienia przerwania cyklicznego wania cyklicznego. Wró my do opcji i ustawmy warto± pocz tkow na 1 - po uruchomieniu, dioda nie b dzie ±wieci. Aby teraz zmusi j do pracy, nale»y w oknie po lewej stronie, w menu User Modules wybra plik Project_x.c:main, gdzie x to numer naszego projektu. Jest to plik gªówny projektu. Odnajdujemy komentarz Write your code here. Powracamy w lewym oknie do naszego beana Bit1:BitIO, rozwijamy menu i odnajdujemy ClrValue. Przeci gamy t funkcj do gªównego pliku projektu w miejsce, o którym wcze±niej wspomniaªem i... naciskamy przycisk z zielon strzaªk (kompilacja i wgranie programu). Pojawi si wiele okien, na pytanie o wymazanie pami ci odpowiadamy twierdz co zaznaczaj c opcj Nie pytaj mnie wi cej. Gdy ju» wszystko si ustabilizuje klikamy w oknie debuggera przycisk z zielon strzaªk (start programu) i cieszymy si widokiem ±wiec cej diody. 3.2 Przerwanie cykliczne W wielu projektach niezb dne jest wykorzystanie przerwania cyklicznego. Odpowiedni timer w mikrokontrolerze zostaje obarczony zadaniem liczenia do ustalonej warto±ci. Gdy ju» do niej 10

Rysunek 3.4: Plik przerwa«- Events.c doliczy zgªasza przerwanie, mikrokontroler przerywa wszelkie aktualne zaj cia, magazynuje swój stan na stosie i zajmuje si obsªug przerwania. Po zako«czeniu przerwania ±ci ga wszystkie dane ze stosu i kontynuuje poprzednie zadanie; timer zostaje zresetowany i zaczyna liczy od pocz tku. Aby zaimplementowa przerwanie cykliczne nale»y z Bean Selector wybra zakªadk ECT, a nast pnie Free Counter. Po dwukrotnym klikni ciu na beana, pojawi si jego opcje. Nale»y wybra czas, co jaki ma wyst powa przerwanie. Jest to pokazane na rysunku 3.2. Nale»y teraz skompilowa projekt. Nast pnie w zakªadce User Modules wybieramy plik Events.c (3.2). Zawiera on funkcje obsªugi przerwa«. W opcjach beana przerwania zdeniowana jest nazwa przerwania, jakie timer generuje. Nazw t odnajdujemy w pliku Events.c i poni»ej znanego komentarza Write your code here przeci gamy funkcj NegValue z beana obsªugi diody. Kompilujemy program i wgrywamy na mikrokontroler. Uruchamiamy debugowanie i oto pªytka ju» do nas mruga. 3.3 Przetwornik ADC Przetwornik ADC sªu»y do pomiaru napi cia. Sygnaª analogowy napi cia jest przetwarzany na cyfrowy o warto±ci od 0 do 1023 (dla 10-bitowego przetwornika). W naszym przypadku 0 to 0V, 1023 to 5V. Przed przyst pieniem do programowania nale»y zadba aby pin VRL byª zwarty z pinem VSSA(GND), a VRH z VDDA(+5V). Pin VRH to górna granica napi cia jakie chcemy bada, a VRL to dolna granica. Z menu Bean Selector, zgodnie z rysunkiem 3.3 wybieramy przetwornik i ustawiamy ile kanaªów chcemy wykorzystywa. Musimy tak»e ustali czas konwersji. W kodzie, przedstawionym pó¹niej, zaªo»ona jest obsªuga dwóch kanaªów; czas konwersji mo»na przyj 20 µs, gdy» gwarantuje to wynik nieobarczony bª dem zwi zanym ze zbyt krótkim czasem konwertowania warto±ci. Wa»na jest równie» opcja Result mode. Mówi ona czy wynik ma by wyrównany do bardziej znacz cych czy do mniej znacz cych bitów. Ustawiamy wersje right justied. Do otrzymywania wyników pomiaru wykorzystujemy funkcj GetValueX, gdzie X oznacza 8 lub 16 bitów. Nale»y zadba, aby zmienna do której pobieramy wynik, miaªa odpowiedni wielko±. Na rysunku 3.3 zaproponowana jest zmienna typu word. Je±li przeci gn li±my funkcj GetValueX do gªównego pliku projektu, to po najechaniu na ni wska¹nikiem i klikni ciu prawym przyciskiem, mamy mo»liwo± podejrzenia deklaracji funkcji. Nie trzeba chyba wspomina jak bardzo przydaje si ta opcja. Proponuj przepisa kod z 3.3, aby ªatwiej byªo zrozumie metod dziaªania przetwornika i uzyskiwania warto±ci. Dodatkowo w kodzie zaim- 11

Rysunek 3.5: Bean przetwornika analog-cyfra Rysunek 3.6: Programik do przetwornika ADC plementowano zaª czanie si diód przy odpowiednich warto±ciach mierzonego napi cia. Je±li mamy uruchomione przerwanie cykliczne, w którym migamy diod, nale»y odpowiedni linijk zakomentowa w celu wyeliminowania dziwnego zachowania diody. Interfejs BDM daje mo»liwo± podgl dania warto±ci zmiennych w czasie dziaªania programu. Proponuj zmienne przechowuj ce zmierzone warto±ci uczyni globalnymi. Po wgraniu zaproponowanego programu przechodzimy do opcji debugowania. W oknie (3.3 - pochodzi z innego projektu) Data 1 mamy wypisane wszelkie zmienne globalne, wraz z warto±ciami. Klikaj c prawym przyciskiem myszy i wybieraj c Mode -> Periodical ustawiamy jak cz sto od±wie»aj si warto±ci zmiennych w tym oknie. Aplikacja przetwornika zostaªa napisana, aby obsªu»y dalmierz laserowy Sharp. Z pomoc dokumentacji sensora, mo»emy dobra tak progi,»e czerwona dioda ±wieci w odlegªo±ci 30 cm lub wi cej, zielona - 50 cm itd. 3.4 Generator sygnaªu PWM Mikrokontroler jest wyposa»ony w sprz towy generator sygnaªów PWM. Za pomoc tego» sygnaªu mo»emy sterowa serwomechanizmem, lub silnikiem poprzez mostek H. PWM mo»na scharakteryzowa dwoma parametrami: okresem trwania i dªugo±ci stanu wysokiego.wi cej informacji mo»na znale¹ w internecie [6]. Aby wykorzysta generator PWM, nale»y doda odpowiedniego beana. Znajdziemy go w 12

Rysunek 3.7: Opcje podgl dania zmiennych Rysunek 3.8: Bean generatora PWM Bean Selector w sekcji PWM. Po dodaniu ukazuje si okno przedstawione na 3.4. Wida wykrzykniki przy polach Period i Starting Pulse Width. Standardowe serwomechanizmy zawieraj zintegrowane mostki, dziaªaj ce dobrze na cz stotliwo±ci ok 50Hz. Wybieramy cz stotliwo± najbli»sz tej warto±ci. Steruj c wypeªnieniem sygnaªu (stosunkiem dªugo±ci czasu stanu wysokiego do trwania caªego okresu) powodujemy obrót w lewo, w prawo lub po prostu utrzymywanie pozycji przez serwo. Nale»y te» pami ta o ustawieniu odpowiedniego pinu jako wyj±cia generatora PWM. Nale»y mie ±wiadomo±,»e dla typowych serwomechanizmów sterujemy w rzeczywisto±ci czasem trwania impulsu, który dla typowych serwomechanizmów wynosi od 1 do 2 ms, przy czym dªugo± 1,5 ms oznacza stop. St d te» niewielki zakres wypeªnienia jest wykorzystywany, co zmniejsza rozdzielczo± sygnaªu steruj cego. Na rysunku 3.4 przedstawiony jest przykªad konguracji. 13

Rysunek 3.9: Ustawienia dla standardowego serwomechanizmu 14

Rozdziaª 4 Podsumowanie Niniejszy dokument powstaª w ramach seminarium z Systemów Mikroprocesorowych w Automatyce. Jest on opisem demonstracji, przeprowadzonej na zaj ciach seminaryjnych z przedmiotu Systemy Mikroprocesorowe w Automatyce. Dodatkowo ma by dokumentem pozwalaj cym na szybkie i ªatwe wprowadzenie do programowania mikrokontrolerów rmy Freescale Semiconductors. W dokumencie omówiono podstawowe aplikacje na mikrokontrolerze; internet peªen jest rozwi za«jak np. poradzi sobie z wy±wietlaczem LCD. Przede wszystkim: warto eksperymentowa i wymy±la sobie coraz to nowsze zadania. Powodzenia! 15

Bibliograa [1] www.freescale.com [2] http://www.datasheetcatalog.com/datasheets_pdf/m/c/9/s/mc9s12a64.shtml [3] http://rab.ict.pwr.wroc.pl/ mw/pdfs/osbdm_tbdml.pdf [4] http://www.konar.ict.pwr.wroc.pl/module.php?op=download&cmd=click&id=112 [5] http://www.konar.ict.pwr.wroc.pl/module.php?op=download&cmd=click&id=127 [6] http://www.netrino.com/embedded-systems/how-to/pwm-pulse-width-modulation 16