kursC_czesc001.pdf

(830 KB) Pobierz
koppelC01.qxd
Programowanie
P r o g r a m o w a n i e p r o c e s o r ó w
w j ę z y k u C
Część 1
Panuje powszechna opinia, że C jest języ−
kiem bardzo trudnym. Mam nadzieję, że
szybko przekonam Cię, że wcale tak być
nie musi. Kurs ten ma ambicje stać prze−
dłużeniem i uzupełnieniem zakończonego
właśnie kursu mikroprocesorowej Oślej
łączki, gdzie wykorzystany był BASCOM
– dialekt języka BASIC. Czasami będę się
odwoływał do Twojej wiedzy na temat tego
właśnie języka. Chcę zaznaczyć jednak,
że wiedza ze wspomnianego kursu może
być pomocna w zrozumieniu tego, co chcę
przekazać, nie jest jednak bezwzględnie
konieczna.
Z zawartych tutaj informacji możesz
skorzystać, także jeśli znasz biegle język C,
ale nie programowałeś jeszcze w nim
mikrokontrolera. Także jeśli posługiwałeś
się do tej pory BASCOM−em lub asemble−
rem, możesz poznać zupełnie nowy, cieka−
wy sposób pracy. Nawet jeżeli masz już za
sobą napisanie niejednej aplikacji w C
działającej na mikrokontrolerze, możesz
znaleźć tutaj coś dla siebie. Przedstawię
bowiem trochę informacji o tym „jak to
działa od środka”, co pomoże w lepszym
zrozumieniu tego, co się dzieje z Twoim
programem.
Na początek pokażę Ci, jak zdobyć
i skonfigurować całkowicie za darmo i le−
galnie bardzo przyzwoite narzędzie pracy.
Następnie chwilkę poświęcimy temu,
z jakiego sprzętu będziemy korzystać
w najbliższym czasie. Po takim wstępie
spróbujemy napisać pierwszą, prostą apli−
kację.
Kursów C jest mnóstwo zarówno w Inter−
necie, jak i w różnego typu publikacjach.
Ja jednak nie chcę się skupiać na C jako
takim. Przede wszystkim chcę pokazać,
w jaki sposób można w tym języku zapro−
gramować mikrokontroler.
Zajmiemy się mikrokontrolerem AV R
i kompilatorem GCC. Mimo iż C jest już
pewnym standardem, nie wszystko, o czym
będzie tutaj mowa, możesz przenieść bezpo−
średnio na inny kompilator. Musisz liczyć się
z tym, że poszczególne kompilatory od czy−
stego C muszą się troszkę zdystansować. Jest
to związane z występowaniem w mikrokon−
trolerach elementów nieujętych w standar−
dzie, jak na przykład układ przerwań. Na
wszelkie niestandardowe fragmenty postaram
się zwrócić Twoją uwagę.
Na początku może wydać się to trudne,
może nie wszystko z pierwszego kodu zro−
zumiesz... Umówmy się, że w chwili, gdy
trafisz na niezrozumiały fragment − po prostu
go przepiszesz... wyjaśnienie zapewne pojawi
się wcześniej czy później, a ja z doświadcze−
nia wiem, że nic bardziej nie cieszy, jak dzia−
łający układ... i nic lepiej nie uczy niż prak−
tyka.
Pewne podstawowe informację jak i cie−
kawostki oraz „rodzynki” będę umieszczał
w ramkach, tak że będziesz mógł do nich zaj−
rzeć, jeśli coś wyda się niejasne. Łatwo
będzie Ci także sięgnąć do tych informacji
w przyszłości, gdy zaczniesz pisać już
całkowicie samodzielne programy.
Zacznijmy więc... na trzy! Trzy kroki.
większej ilości języków niż tylko C. Jednak
część z nich w wersji dla procesorów AVR
nie została do końca zaimplementowana, co
sprawia, że pisanie w nich programu wymaga
wiedzy nie tylko o danym języku, ale także
o istniejących ograniczeniach. Aby dłużej już
nie zaciemniać sprawy, umówmy się, że w tej
chwili będziemy korzystać tylko z kompilato−
ra C, pozwalając sobie czasami na niewielkie
ustępstwa pozwalające prościej zapisać jakąś
funkcję. w takim przypadku będę jednak
zaznaczał, że dana składnia nie jest zgodna ze
standardem ANSI C.
Pakiet zawierający AVR−GCC w wersji
dla Windows uzyskał nazwę WinAvr – warto
wiedzieć o tym przy poszukiwaniu odpowied−
nich plików. Cały pakiet
jest udostępniany na
licencji typu Open Sour−
ce. Oznacza to, że osoba
czuwająca nad projektem
udostępnia cały jego kod
źródłowy. Praktycznie
każdy może wnieść do
programu coś nowego.
Nas jednakże w tej chwili
interesuje to, że kompila−
tor ten można ściągnąć
całkowicie za darmo. Nie
spotkasz się tutaj z ja−
kimikolwiek ogranicze−
niami, na przykład długo−
ści kodu wynikowego.
Pobieranie programu mo−
żesz rozpocząć od strony
domowej projektu:
http://winavr.sourcefor−
ge.net/
Strona jest dość przej−
rzysta. Warto zapamiętać
ten adres ze względu na
mnogość przydatnych
odnośników w dziale „Links”. Aktualnie jed−
nak proponuję przejście na stronę:
http://sourceforge.net/projects/winavr/
Jeśli nie widzisz linku na stronie domowej,
możesz także wpisać podany adres bezpo−
średnio w okienko przeglądarki. Powinieneś
ujrzeć teraz stronę podobną do tej na rysun−
ku 1. Także na wspomnianym rysunku
w skrócie opisałem jak postępować dalej.
W chwili pisania tego kursu dysponowa−
łem wersją programu 20050214. Okazuje się,
że między kolejnymi wersjami pojawiają się
czasami różnice sprawiające, że poprzednio
napisany program nie zostanie skompilowany
Rys. 1 Strona ściągania kompilatora
WinAVR
Krok pierwszy
− zbieranie narzędzi
a/. Pakiet WinAVR . Do kompilacji naszych
programów skorzystamy ze znakomitego
kompilatora AVR−GCC. Kompilator ten co
prawda potrafi „przełknąć” kod napisany w
36
Elektronika dla Wszystkich
215232869.014.png 215232869.015.png
Programowanie
bez pewnych drobnych zmian. Jeśli pojawi
się jakikolwiek problem z kompilacją przed−
stawionych programów, proponuję Ci na
początek pobranie tej samej wersji kompilato−
ra. Po dokonaniu wyboru, zgodnie z rysun−
kiem 1, pojawi się jedno z okienek przedsta−
wionych na rysunku 2. Wybieramy pasującą
nam opcję. Zostaniemy przekierowani do
strony z zapytaniem, z jakiego serwera chce−
my skorzystać. Wybieramy dowolny, najle−
piej w Europie. Po chwili powinno rozpocząć
się pobieranie pliku. Jak widać na przedsta−
wionych ilustracjach, najnowsza w chwili
pisania tego tekstu wersja miała rozmiar
14MB. Pobieranie może więc chwilę potrwać.
b/. AVRStudio4 . Drugim pakietem, z któ−
rego będziemy korzystać, jest znakomite
AVRStudio. Dokładniej – skorzystamy z mo−
żliwości emulacji programu. Najnowszą wer−
sję AVRStudio udostępnia nieodpłatnie firma
ATMEL na swojej stronie domowej. Przy
odrobinie szczęścia program ten znajdziesz
na jakimś krążku w czasopiśmie, ważne jed−
nak, aby była to wersja minimum 4.10.
Dopiero ta wersja akceptuje format pliku,
z którego będziemy korzystać w celu emulo−
wania programu.
Mimo iż AVRStudio4 nie umożliwia
pisania programów w C, pozwala na bar−
dzo wygodną ich symulację. Uważam, że
dużo wygodniejszą niż miało to miejsce
w poprzedniku, który z kolei znakomicie
integrował się z dowolnym kompilatorem
C... o ironio...
Jeśli nie przeraża Cię pobranie z sieci
41MB danych – gorąco zachęcam Cię do
zassania najnowszej wersji oprogramowania
ATMEL−a. Ja w chwili pisania tego kursu
dysponowałem wersją 4.11 i dokładnie tej
wersji dotyczyć będzie dalszy opis. Poniżej
przedstawiam krok po kroku, jak pobrać
wspomniane oprogramowanie. Wejdź na stro−
nę główną firmy ATMEL:
www.atmel.com
Spójrz na rysunek 3. Pokazałem na nim
kolejne przejścia od strony głównej do strony
zawierającej informacje o procesorach AVR.
Poczekaj chwilę, aż nowa strona zostanie
władowana, następnie z pomarańczowego
menu po lewej stronie wybierz pozycję
„Tools & Software”. Po chwili pojawią się
dostępne narzędzia dla procesorów AVR. Bez
problemu powinieneś znaleźć tutaj AVR Stu−
dio 4. Nie przytaczam kolejnego
obrazka – przejście jest bardzo proste.
Znajdziesz się na stronie umożliwiają−
cej pobranie dokumentacji opisującej
interesujący nas program, dodatko−
wych wtyczek do niego oraz oczywi−
ście samego programu. Dla naszego
kursu znaczenie ma odnośnik w stylu:
AVR Studio 4.11 (build 401). Za krót−
ką lub też dłuższą chwilę – zależnie od
możliwości Twojego łącza oraz chwi−
lowego obciążenia sieci – powinieneś
dysponować już wszystkimi potrzeb−
nymi nam programami. Następnym
krokiem będzie ich instalacja oraz
konfiguracja.
polecam Ci odznaczenie opcji „Add Directo−
ries to PATH”. Proponowane ustawienie
opcji przedstawiłem na rysunku 4. Osobiście
jestem przeciwnikiem dodawania czegokol−
wiek do PATH−a. Informację o tym dlaczego
mam takie obiekcje, znajdziesz w ramce
„PATH – co to takiego?” . Przy sposobie,
w jaki będziemy używać kompilatora, dodat−
kowe utrudnienie będzie polegało tylko na
dodaniu jednej linijki do skryptu kompilacji.
Rys. 4 Zmiany podczas instalacji
WinAVR
Krok drugi
− instalacja i konfiguracja
Programy, których użyjemy, mają własne
instalatory, więc nie powinno być z nimi pro−
blemów. Przy AVRStudiu przyjmijmy zasa−
dę, aby nie przeszkadzać instalatorowi i zga−
dzać się na wszystkie jego domyślne propo−
zycje. Instalator WinAVR zaraz po pytaniu
o folder docelowy wyświetli okienko
„Wybór komponentów”. W okienku tym
Zmienna systemowa PATH zawiera ścież−
ki, w jakich system ma szukać żądanego
programu. Jeśli chcesz się przekonać, jak to
działa, uruchom „Wiersz polecenia”
( w starszych systemach będzie to „Tryb
MS−DOS”). Wpisz teraz polecenie edit
i naciśnij ENTER. Pojawi się znany niektó−
rym edytor tekstowy. Możesz spróbować
także innych komend, na przykład mspa−
int, notepad. Możesz próbować z poziomu
innego katalogu – zmień katalog polece−
niem cd.
Skąd system wie, gdzie ma
szukać informacji? Wyjdź z uru−
chomionego programu i wydaj
inną komendę: path . Dostaniesz
informację na temat co „siedzi”
we wspomnianej zmiennej.
Okazuje się, że w chwili gdy
wydajesz komendę edit , system
szuka wszelkich plików urucha−
mialnych o podanej nazwie
(edit.exe, edit.com, edit.bat).
Najpierw przeszukuje aktualny
folder. Jeśli nie znajdzie odpo−
wiedniego pliku, sięga do kolej−
nych ścieżek znajdujących się
w zmiennej PATH. Wpisy prze−
twarzane są w kolejności od
pierwszego do ostatniego.
WinAVR korzysta z tego udo−
godnienia, umożliwiając urucho−
mienie swojego programu o na−
zwie make.exe z poziomu folderu
Rys. 2 Wybór konkretnego pliku
do pobrania
Rys. 3 Strona firmy
ATMEL
Elektronika dla Wszystkich
37
215232869.016.png 215232869.017.png 215232869.001.png 215232869.002.png
Programowanie
zawierającego pliki naszego programu. Czy
teraz widzisz niebezpieczeństwo? Zastanów
się przez chwilę, co się stanie, jeśli w po−
dobny sposób zechcesz zainstalować kom−
pilator C dla procesorów 51, może ARM?
Zapewniam Cię, że nazwa make.exe wśród
kompilatorów nie jest wcale rzadka. Myślę,
że już zaczynasz rozumieć – w takim przy−
padku przy próbie kompilacji zostanie uru−
chomiony ten kompilator, który jako pierw−
szy wpisze swoje dane do PATH−a. Do
pozostałych będziesz mógł się dostać tylko
przez bezpośrednie podanie pełnej ścieżki.
Jak rozwiązać przedstawiony problem?
Dalej napiszemy banalne pliki wsadowe
które ustawią odpowiednio wspomnianą
zmienną tylko w chwili kompilacji i tylko
dla jej wątku. Nie tylko dodadzą odpowied−
nie katalogi. Po prostu ustawimy perma−
nentnie katalogi takie, jakie są nam potrzeb−
ne, zupełnie nie przejmując się poprzednią
zawartością zmiennej. W ten prosty sposób
ominiemy przedstawiony wyżej problem,
jednocześnie nie zmniejszając komfortu
obsługi naszych narzędzi. Ważne jest to, że
w systemie Windows takie przypisanie nie
przybiera formy stałej. Obowiązuje tylko
dla aktualnie działającego programu.
wyjaśnień wpisz podobnie jak poprzednio
skrypt z listingu 2. Zapisz go jako
C:\WinAVR\clean.bat.
„Programmers Notepad”. Jeśli tak jest, uru−
chamiamy go. W przeciwnym przypadku uru−
chamiamy bezpośrednio plik
C:\WinAVR\pn\pn.exe.
Po pierwszym uruchomie−
niu program powinien wyglą−
dać mniej więcej tak jak na
rysunku 5. Ja pomniejszyłem okienko spe−
cjalnie, tak aby widoczne były wszystkie ele−
menty kontrolne, a jednocześnie obrazek nie
zajmował wiele miejsca. W celu „zbratania”
kompilatora z uruchomionym właśnie edyto−
rem wydajemy następujący ciąg komend:
Tools−>Options. W okienku, które się ukaza−
ło, wybieramy z listy po lewej stronie opcję
Tools. Upewniamy się, że w rozwijalnej liście
„scheme” podświetlone jest pole „(None –
Global Tools)”. Na rysunku 6 umieściłem
okienko, jakie powinno się pojawić oraz spo−
sób jego wywołania. Zauważysz teraz, że in−
stalator domyślnie dodał do zestawu naszych
narzędzi trzy dotyczące naszego kompilatora.
Okazuje się jednak, że domyślne ustawienia
nie działają, jeśli podczas instalacji nie
zezwoliliśmy na dodanie wpisów do PATH−a.
Poza tym, narzędzia te można skonfigurować
troszkę wygodniej. Bez większego żalu
Listing 2
Gratuluję – właśnie stworzyłeś coś, co
nazwiemy skryptami kompilacji. Pierwszy z
nich spowoduje skompilowanie Twojego pro−
gramu. Drugi umożliwi automatyczne usunię−
cie wszystkich plików tworzonych przez
kompilator – czasami okazuje się to bardzo
wygodne. Jeśli będziesz chciał na przykład
zapisać na dyskietkę kopię swojego progra−
mu, nie musisz dodawać wszystkich plików
powstałych podczas kompilacji. Jedna
komenda i masz tylko to co najważniejsze.
Działanie powyższych skryptów jest tak
samo proste, jak ich napisanie. W pierwszej
linii obu z nich pojawia się ustawienie ścieżek,
których potrzebuje kompilator AVR−GCC.
Pamiętasz? Wspomniałem już o tym, że bę−
dziemy musieli to zrobić ręcznie. Następnie
wywoływane jest polecenie make.exe kompi−
latora. Plik, do którego się odwołujemy, znaj−
duje się w katalogu C:\WinAVR\utils\bin . Zależ−
nie od tego, z jakimi zostanie wywołany
parametrami, wywoła on inne programy
z pakietu kompilatora. Wydanie komendy
make.exe bez parametru, jest równoważ−
ne z komendą make.exe all. Powoduje
uruchomienie wszystkich procesów
koniecznych do kompilacji programu.
Automatycznie utworzone zostaną pliki,
które będziemy mogli wpisać do pamięci
docelowego urządzenia, oraz specjalny
plik umożliwiający symulację programu.
Z kolei, jak się łatwo domyślić, parametr
clean spowoduje usunięcie wszystkich
plików poza tymi, które utworzyliśmy
sami. Skrypty te należy uruchomić z kata−
logu zawierającego pliki programu.
Można to zrobić nawet bezpośrednio za
pomocą konsoli, a same pliki pisać w no−
tatniku... ale my mieliśmy stworzyć sobie
przyjemniejszy zestaw narzędzi. W celu
pisania kodu, jego kompilacji, wreszcie
zarządzania ca−
łym projektem,
wykorzystamy
bardzo wygodny
i uniwersalny program o nazwie
„Programmers Notepad”. Korzy−
stam z tego narzędzia już od
dwóch lat i w tym czasie program
przeszedł wiele zmian. O ile na
początku praca była dość kłopotli−
wa, w tej chwili śmiało mogę
powiedzieć, że narzędzie jest
rewelacyjne – mam nadzieję, że
w najbliższym czasie uda mi się
przekonać Ciebie, że tak jest w is−
tocie. Na pulpicie powinien się
znajdować teraz skrót o nazwie
Na resztę warunków instalacji zgadzamy
się bez sprzeciwów. Na początkowym etapie
przygody z GCC dotyczy to także ścieżki
docelowej instalacji. Dalszy opis dotyczy
standardowo zainstalowanego kompilatora do
katalogu C:\WinAVR. Katalog instalacyjny
AVRStudio nie ma znaczenia. W tym miej−
scu oba programy powinny już być zainstalo−
wane. Zajmijmy się więc ich konfiguracją.
Na początek proponuję stworzenie pro−
ściutkiego skryptu, który przeprowadzi
wszystkie czynności mające na celu kompila−
cję dowolnego programu. Dalej opisane pliki
teoretycznie możesz umieścić gdziekolwiek.
Aby nie czynić zamieszania, proponuję Ci
zapisać je w katalogu C:\WinAVR. Uruchom
dowolny edytor tekstowy, najlepiej niech
będzie to prosty windowsowy Notatnik.
Wpisz w nim kod widoczny na listingu 1.
Rys. 5 Programmers Notepad
Rys. 6 Wejście w konfigurację narzędzi
(Tools)
Listing 1
Uważaj: Bardzo ważny w pierwszej linii jest
brak spacji pomiędzy poszczególnymi ścież−
kami oraz naokoło znaku równości! Przy
zignorowaniu tego faktu skrypt może w ogóle
nie działać. Po przepisaniu podanego listingu
zapisz plik w wybranym folderze – dla ujed−
nolicenia naszej sytuacji umówmy się, że
przynajmniej na początku zapiszesz plik tak
jak ja – w folderze C:\WinAVR, pod nazwą
make.bat. Pamiętaj o wpisaniu rozszerzenia
podczas zapisywania. Jeśli o tym zapomnisz,
plik zostanie zapisany z domyślnym rozsze−
rzeniem jako make.txt. Chwilowo jeszcze bez
38
Elektronika dla Wszystkich
215232869.003.png 215232869.004.png 215232869.005.png
Programowanie
zaznaczamy więc kolejno wszystkie wpisy,
przyciskając za każdym razem przycisk
Remove. Gdy mamy już puste pole, wybiera−
my, znajdujący się nieco wyżej, przycisk
Add. Pojawi się okienko „Właściwości: New
Tool”. Zakładkę „Properties” wypełnij tak,
jak to pokazałem na rysunku 7. Przy polu
Command znajduje się przycisk z trzema
kropkami. Możesz użyć go w celu znalezienia
naszego pliku make.bat. Pole Shortcut
wypełniamy w troszkę nietypowy sposób:
kliknij myszą na polu do wprowadzania
danych, a następnie – uwaga – przyciśnij
przycisk F7. I już. Możesz oczywiście spró−
bować innej kombinacji klawiszy.
Na kolejnej zakładce nie powinno być
potrzeby wprowadzania jakichkolwiek
zmian. Na wszelki wypadek jednak upewnij
się, że ustawienia są zgodne z tymi przedsta−
wionymi na rysunku 8. Jeśli wszystko się
zgadza, zatwierdzamy utworzenie nowego
narzędzia, klikając OK. Aktualnie mamy już
możliwość wygodnej kompilacji programu
z poziomu naszego „Notatnika”. Dodajmy
jeszcze możliwość wywołania drugiej z utwo−
rzonych przez nas komend.
W identyczny sposób jak poprzednio
dodaj nowe narzędzie. Edytuj ustawienia tak,
aby zgadzały się z tymi na rysunku 9. Za−
kładka „Console I/O” powinna być wypeł−
niona identycznie jak poprzednio. W okienku
tworzenia narzędzi całą naszą pracę potwier−
dzamy przyciskiem OK. W tej chwili nasz
„notatnik” jest już skonfigurowany i gotowy
do pracy.
stowe wypróbowanie nowej wiedzy. Jeśli do
tego zapoznałeś się z treścią artykułu „Progra−
mator BASCOM−a pomocą przy programo−
waniu w C, asemblerze, itd...” (EdW 1/2005)
– wierzę, że znakomicie poradzisz sobie
z dalszą częścią kursu.
Na rysunku 10 przedstawiam schema−
tycznie przyporządkowanie funkcji wypro−
wadzeniom procesora w płytce, której będzie−
my już za chwilę używać. Uprości to zrozu−
mienie (oraz pisanie ;]) kodów programów.
Natomiast na fotografii 1 możesz zobaczyć
sprzęt, z jakiego korzystałem przy wykony−
waniu pierwszego ćwiczenia. Przy okazji
Mikroprocesorowej Oślej łączki, w numerze
2/2003 wykonany był identyczny układ
– 5 diod z rezystorami ograniczającymi
(około 200
Krok trzeci
− przygotowanie
części sprzętowej
Myślę, że wielu z Was ucieszy fakt, że dziś
skorzystamy z dokładnie tego samego sprzę−
tu, na jakim opierał się kurs BASCOM−a.
Osobom uczestniczącym do tej pory aktywnie
w poprzednim kursie umożliwi to natychmia−
) podłączonych anodami w stro−
nę wyjść Q2−Q6, a katodami w stronę wypro−
wadzenia GND. Przy odrobinie wprawy
układ można zmontować „na pająku” w 10
minut.
Rys. 7 Narzędzie „make”
Rys. 8 Zakładka „Console I/O”
Rys. 9 Narzędzie „clean”
GCC – idea pracy
Jeśli używałeś do tej pory kompilatora
BASCOM, prawdopodobnie przyzwyczaiłeś
się już do przyjemnego interfejsu użytkowni−
ka oraz przycisku „Compile current file...”.
GCC jest inny – chcę, abyś zrozumiał, że sam
kompilator praktycznie może działać bez
jakiegokolwiek środowiska programisty.
Przy odrobinie wprawy można uruchomić go
bezpośrednio z linii komend i w ten sposób
przeprowadzić kompilacje. Z drugiej jednak
strony możliwe jest wykorzystanie jakiego−
kolwiek zewnętrznego środowiska programi−
sty. Jednym z powodów tej swoistej uniwer−
salności GCC jest idea plików makefile . Plik
taki zawiera informacje, jakie narzędzia
powinny zostać uruchomione, jakie pliki
kompilować, w jaki sposób połączyć skompi−
lowane pliki w program (linkowanie), w ja−
kim formacie program powinien zostać
wygenerowany. W pliku makefile mogą zna−
leźć się także inne informacje – skorzystali−
śmy z jednej z nich, umożliwiającej nam
czyszczenie projektu. Wywoływana przez nas
komenda make jest w zasadzie interpreterem
plików makefile. Komenda ta poszukuje
w aktualnym katalogu pliku o nazwie makefi−
le (brak rozszerzenia). Gdy go odnajdzie,
wykonuje zapisany w nim program.
Spodziewasz się prawdopodobnie, że
skoro taki plik zawiera tak dużą ilość infor−
macji, zapewne jest (po)tworem dość skom−
plikowanym. Jeśli tak myślisz... masz rację.
Nie przerażaj się jednak w tym momencie.
Twórcy WinAVR zadbali o to, aby ułatwić
nam zadanie. Stworzyli specjalny szablon,
bardzo łatwy i intuicyjny do modyfikacji.
W praktyce okazuje się, że nie będziemy
musieli modyfikować nic więcej niż kilka
pierwszych linii. Już za chwilę przekonasz
się, że po kilku praktycznych próbach pliki
makefile wydają się całkowicie naturalne.
*Przy pisaniu tekstu tej ramki korzysta−
lem z artykulu “Downloading, Installing and
Configuring WinAVR”, którego autorem
jest: Colin O’Flynn, edytorem: Eric Wed−
dington. Artykuł dostępny w dokumentacji
na stronie domowej projektu:
http://winavr.sourceforge.net/download/instal
l_config_WinAVR.pdf
Elektronika dla Wszystkich
39
215232869.006.png 215232869.007.png 215232869.008.png 215232869.009.png 215232869.010.png
Programowanie
Start!
− pierwszy program:
Nasz pierwszy programik, jak tradycja na−
kazuje, będzie banalny w swym działaniu.
Jego przeznaczeniem jest umożliwienie zapo−
znania się z najbardziej podstawowymi zagad−
nieniami C oraz z zasadami pracy z nowymi
narzędziami. Aby ułatwić Ci zadanie, na
rysunku 11 umieściłem opis krok po kroku, co
powinieneś zrobić żeby móc rozpocząć pisa−
nie nowego programu. W ramce „Plik make−
file” znajdziesz natomiast dokładny opis,
jakie zmiany powinieneś wprowadzić w tytu−
łowym pliku.
Obrazek opisujący kolejne kroki do rozpo−
częcia programu jednoznacznie przedstawia,
jak okiełznać Programmers Notepada w połą−
czeniu z WinAVR. Postaram się więc wyja−
śnić jedynie sens oraz celowość tych działań.
Przyzwyczaj się do tego, aby każdy nowy
program umieszczać w osobnym folderze.
Zauważ, że program kompilowany przez
GCC musi posiadać plik o nazwie makefile .
Bez tego nie jest możliwa jego kompilacja.
Ponieważ dla każdego programu plik ten
będzie miał różną formę, umieszczanie kilku
programów w tym samym katalogu wydaje
się nierealne. Nie jest to jednak żadnym ogra−
niczeniem. W praktyce umieszczanie więk−
szej ilości kodów w jednym folderze powo−
duje tylko bałagan na dysku. Tematowi pliku
makefile poświęciłem już dwie ramki. Na
rysunku 11 pokazuję jedynie, skąd skopio−
wać go do folderu naszego programu. Nie−
wiele natomiast wspominałem o projektach.
Jest to bardzo wygodne rozwiązanie od nie−
dawna dostępne w Programmers Notepadzie.
Plik projektu zawiera w zasadzie tylko opis,
Rys. 10 Przyporządkowanie
wyprowadzeń
Plik makefile
Przygotowany przez twórców AVR−GCC
plik – szkielet zawiera wszystko co potrzeb−
ne, aby skompilować własną aplikację.
Powinien się on znajdować w katalogu
C:\WinAVR\sample. Zawiera bogate komen−
tarze, tak że nie ma problemu ze zrozu−
mieniem jego działania. W najprostszych
aplikacjach musisz znać jedynie jego pierw−
sze linie, które są przedstawione na rysunku
obok. Jeśli zmodyfikujesz je zgodnie z przy−
toczonym opisem, będziesz gotowy już do
tworzenia kodu aplikacji. Jeśli do tej pory
pisałeś programy za pomocą środowiska
BASCOM – zauważ, że za pomocą dość
wygodnego pliku tekstowego robisz właśnie
to, co do tej pory robiłeś za pomocą menu
okienkowego lub dodając odpowiednie
komendy sterujące w programie. Pamiętasz
komendy takie jak $crystal, $regfile...?
A może korzystałeś zawsze z ustawień
w menu Options−>Compiler−>Chip...? Teraz
robimy dokładnie to samo i jeśli zrozumiałeś
na czym polega konfiguracja kompilatora
BASCOM, teraz też poradzisz sobie bez
trudu.
40
Elektronika dla Wszystkich
215232869.011.png 215232869.012.png 215232869.013.png
Zgłoś jeśli naruszono regulamin