Professional Documents
Culture Documents
CILJ VEBE
PROCEDURA:
1. Iz Start menija pokrenuti aplikaciju IAR Embedded Workbench. Otvoriti dokument IAR
Embedded Workbench.pdf koji se nalazi u direktorijumu VEZBE_ LPC2148. Pratei korake navedene
u dokumentu kreirati novi C projekat sa main() funkcijom, pod nazivom Test. Razvojno okruenje bi
trebalo da izgleda kao Ilustracija 1. Sauvati radni prostor (File -> Save Workspace) pod imenom Test
u radnom direktorijumu.
Program je zaustavljen na prvoj naredbi u main programu (Ilustracija 4). U desnom prozoru je
prikazan izvorni C kod programa. U gornjem levom prozoru vidimo fizike adrese i vrednosti
promenljivih koje su do ovog trenutka deklarisane. U donjem levom uglu vidimo stanja registara
procesora.
Ukoliko elimo da posmatramo registre periferija
mikrokontrolera, potrebno je ukljuiti i Watch Window.
Registre koje elimo da posmatramo dodajemo odabirom
opcije desni klikAdd Items (By Name).
ZADATAK 2: Izraditi program koji bi po startovanju naizmenino palio i gasio neku od svetleih
dioda, tako da dioda svetli priblino pola sekunde i isto toliko je ugaena.
Uvod:
GPIO periferija se sastoji od dva porta (PORT0 i PORT1) pri emu svaki od njih sadri do 32 ulazno-
izlazne linije. Svakoj ulazno-izlaznoj liniji je pridruena po jedna noica mikrokontrolera i po jedan bit u
odgovarajuem registru podataka (IO0PIN i IO1PIN). Stanje svakog bita u IOPIN registrima je povezano
sa logikim stanjem odgovarajue noice mikrokontrolera. Na primer, logiko stanje bita 15 porta 0
(P0.15) odgovara logikom stanju noice 45 na mikrokontroleru.
REENJE:
Deklarisanje simbolikog imena u C programskom jeziku se radi pomou direktive #define, a tip
pokazivaa na memorijski lokaciju se, u zavisnosti od veliine podatka kojem se pristupa, definie
kao:
(*((volatile unsigned char *) pokaziva na memorijsku lokaciju jednobajtnog podatka;
(*((volatile unsigned short *) pokaziva na memorijsku lokaciju dvobajtnog podatka;
(*((volatile unsigned long *) pokaziva na memorijsku lokaciju etvorobajtnog podatka.
Obzirom da su svi GPIO registri 32-bitni, koristiemo etvorobajtni tip pokazivaa. Prema tome,
deklaracija registara IOPORT0 izgleda kao Ilustracija 5:
3. Deklaracija tipova
Na slian nain (kao za tipove pokazivaa na memorijske lokacije u prethodnom odeljku)
deklarisaemo u datoteci i takva skraena simbolika imena za osnovne C tipove, koja e u nazivu
govoriti koliko bita nosi podatak tog tipa, kao i da li predstavlja oznaeni ili neoznaeni broj:
4. Deklaracija pinova
Deklarisaemo simboliko ime za broj koji ima jedinicu na mestu bita koji elimo da pogodimo na
IOPORT0:
Na kraju glavnog programa definisati funkciju Init_GPIO, u kojoj jedino to treba inicijalizovati je da
jedna linija porta bude izlazna, na primer P0.7, setovanjem odgovarajueg pina u IODIR0 registru
(default smer za sve linije GPIO je ulazni):
6. Na poetku glavnog programa deklarisati funkciju
kojoj se kao parameter prosleuje 32-bitni broj, a slui za vremensko kanjnje u programu. Funkcija
treba da umanjuje ulazni parametar za jedan dok on ne postane 0. Ovakvo umanjivanje broja 360000
traje priblino jednu sekundu.
Na kraju glavnog programa definisati funkciju Kasni:
Na poetku glavne programske funkcije najpre emo inicijalizovati GPIO periferiju pozivom funkcije
Init_GPIO():
Nakon inicijalizacije izvrava se beskonana petlja u kojoj se naizmenino upisuje logika 1 i logika
0 na mesto bita 7 registra IO0PIN (IO0PIN.7), to uzrokuje odgovarajue promene naponskih nivoa
noice pridruene ovom bitu GPIO porta. Izmeu ovih promena stanja pravi se pauza od priblino
500 ms pozivom funkcije Kasni().
Ceo kd glavnog programa main.c i lpc2148.h treba da izgleda kao na Ilustracija 6:
Na simulatoru povezati noicu odabrane izlazne linije GPIO-a mikrokontorlera sa nekom od svetleih
dioda. Podesiti u simlatoru putanju do kreirane .elf datoteke i pokrenuti njegovo izvravanje.
ZADATAK 3: Izraditi program koji bi na pritisak tastera pokretao treperenje neke od svetljeih dioda.
PROCEDURA:
Slino kao u drugom zadatku, podesiti registre mikrokontrolera tako da se jedna od linija
ulazno-izlaznog porta GPIO (npr. P0.6) koristi kao izlazna, a neka druga kao ulazna (npr P0.8).
Projekat kreiran u okruenju IAR Embedded Workbench za potrebe prvog zadatka, izmeniti
tako da se paljenje i gaenje svetleih dioda pokrene tek nakon to se sa odabrane ulazne linije ulazno-
izlaznog porta (GPIO) proita stanje pritisnutog tastera. Prevesti program.
Noicu odabrane ulazne linije GPIO-a mikrokontrolera u simulatoru povezati sa nekim od
tastera.
Noicu odabrane izlazne linije GPIO-a mikrokontrolera u simulatoru povezati sa nekom od
svetleih dioda.
Podesiti u simlatoru putanju do kreirane .elf datoteke i pokrenuti njegovo izvravanje.