background image

 
Artykuł pochodzi ze strony XYZ HOBBY ROBOT (

xyz.isgreat.org

Kurs AVR-GCC cz.1

30.11.2008 ABXYZ

Nikogo nie trzeba przekonywać jak bardzo użyteczny może być 
mikroprocesor w konstruowaniu wszelkich sprzętów i urządzeń. 
Najwygodniejsze do wykorzystania są mikrokontrolery, nazywane 
też mikrokomputerami jednoukładowymi, gdyż w jednym takim 
układnie scalonym umieszcza się: mikroprocesor, pamięć, porty 
wejścia/wyjścia oraz całą resztę potrzebną do działania procesora. 
Największym udogodnieniem jest wbudowana w strukturę 
mikrokontrolera pamięć flash, przeznaczona na programy, którą 
można łatwo zaprogramować "w systemie" bez potrzeby używania 
drogich programatorów. Obecnie, zwłaszcza wśród hobbystów, 
najpopularniejsze są 8-bitowe mikrokontrolery AVR firmy ATMEL. 
Pozostaje tylko jedna trudność, tworzenie programów, nawet 
najlepszy komputer bez oprogramowania jest bezużyteczny. Do 
tego wymagana jest znajomość języków programowania oraz 
architektury mikrokontrolera. W Internecie można znaleźć wiele 
materiałów na temat programowania AVR-ów, ale kompletnego 
kursu programowania w języku C dla początkujących ja nie 
znalazłem, więc sam zabrałem się do pisanie takiego tekstu. Co do 
poziomu wiedzy w tekście, to proszę nie oczekiwać zbyt wiele, 
jestem jedynie amatorem, hobbystą i ten kurs programowania 
także kierowany jest przede wszystkim do hobbystów, entuzjastów 
robotyki. 

Kurs. Co i jak ?

Dla zrozumienia treści kursu będzie potrzebne niewielkie 
doświadczenie w dziedzinie elektroniki, dodatkowo znajomość 
któregoś z języków programowania (na przykład Pascala z lekcji 
informatyki w szkole) znakomicie ułatwi zrozumienie tematu. Będzie 
to kurs "praktyczny", przygotuję wiele działających, gotowych do 
wykorzystania przykładów. Zaczniemy od zupełnych podstaw, 
będziemy poznawać język C oraz wewnętrzne zasoby 
mikrokontrolerów AVR. Zahaczymy też o asembler, gdyż czasem 
poręczniej jest napisać fragment programu w asemblerze; 
dodatkowo pomoże to zrozumieć jak działa mikroprocesor. 

Będziemy wykorzystywać kompilator języka C (AVR-GCC) i 
programy narzędziowe z pakietu WinAVR (oprogramowanie 
całkowicie darmowe). Przykładowe programy będą pisane z 
przeznaczeniem głównie dla układów ATmega (ATmega8 i 
ATmega16). 

Page 1 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Układy ATmega8 i ATmega16 w obudowach do montażu przewlekanego. 

Do testowania przykładów z kursu polecam płytkę stykową, ja będę 
uruchamiał przykładowe programy na takiej małej, jak na zdjęciu 
poniżej. Płytki stykowe to wspaniały wynalazek, niestety nie są 
tanie, dlatego wybrałem małe płytki, w razie potrzeby można łączyć 
ze sobą dwie i więcej takich płytek. 

 

Mała płytka stykowa.

Przewody do połączeń na płytce stykowej można wykonać 
rozcinając kawałek skrętki komputerowe 

 

Żyły przewodów z rozciętej skrętki komputerowej doskonale nadają się do robienia 

połączeń na płytce stykowej.

Page 2 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

Jednak przy bardziej rozbudowanych projektach lepiej lutować 
części elektroniczne na płytce uniwersalnej. Ja będę używał takiej, 
jaką widać zdjęciu poniżej. 

 

Płytka uniwersalna

Zdecydowanie nie warto na potrzeby tego kursu wykonywać płytkę 
pcb, czy kupować zestaw (płytkę startową) z mikrokontrolerem 
AVR. Natomiast warto kupić gotowy programator AVR ISP, napiszę 
o tym dalej. 

Warto też postarać się o jakoś książkę z kompletnym, 
szczegółowym opisem języka C. Ja polecam książkę: "Język ANSI 
C" autorzy: Brian W. Kernighan, Dennis M. Ritchie. 

 

Mój egzemplarz książki "Język ANSI C" kupiony okazyjnie z kartonu na bazarze. Obecnie 

książka sprzedawana jest w innej okładce.

Głównym źródłem informacji o układach AVR jest oczywiście strona 
producenta  

http://www.atmel.com/products/AVR/

 

a na temat kompilatora avr-gcc, strona biblioteki "avr-libc" 

http://www.nongnu.org/avr-libc/

 

Page 3 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

Pamięć dla programu i danych

Zacznę od tematu pamięci wewnętrznej 
(pamięci wbudowanej w strukturę układów 
AVR). Za każdym razem, gdy uruchamia się 
jakąś aplikacje na komputerze PC, to 
programy przed uruchomieniem ładowane są 
z twardego dysku do pamięci operacyjnej 
RAM komputera. W przypadku 
mikrokontrolerów AVR kod programu 
umieszczany jest na stałe w wewnętrznej 
pamięci FLASH. Pamięć FLASH jest pamięcią 
nieulotną, jej zawartość nie zanika w chwili 
odłączenia zasilania, jak to jest w przypadku 
pamięci RAM, lecz pozostaje niezmieniona 

do momentu ponownego zaprogramowania. Programować FLASH 
mikrokontrolerów AVR, to znaczy skasować aktualną zawartość 
pamięci i zapisać nową, można około 10000 razy, tyle powinien 
układ przetrwać, potem pozostaje wymienić układ na nowy. W 
pamięci FLASH mikrokontrolera oprócz kodu programu umieszcza 
się także wartości stałe w programie, a zwłaszcza duże tablice 
stałych oraz teksty - ciągi znaków, na przykład komunikaty 
wysyłane do wyświetlacza alfanumerycznego. Dalej w tekście 
zamiast przydługiego słowa "mikrokontroler" będę używał skrótu 
"uC". 

Oczywiście zmienne w programie tworzone są w pamięci RAM, 
mikrokontrolery AVR posiadają także wbudowaną pamięć SRAM 
(ang. static RAM). Dodatkowo uC AVR wyposażone są w pamięć 
EEPROM, program może zapisywać do tej pamięci dane, które 
powinny przetrwać wyłączenie urządzenia (ustawienia). Do pamięci 
EEPROM uC AVR dane zapisywać można około 100000 razy, tyle 
według dokumentacji powinien układ przetrwać. Poniżej w tabeli 
wypisałem ile pamięci FLASH, SRAM i EEPROM posiadają uC AVR, 
których będziemy używać. Nie są to gigabajty, warto o tym 
pamiętać pisząc programy i oszczędnie wykorzystywać pamięć AVR-
ka. 

FLASH SRAM EEPROM

ATtiny2313

2 KB

128 B

128 B

ATmega8

8 KB

1 KB

512 B

ATmega16 16 KB

1 KB

512 B

ATmega32 32 KB

2 KB

1 KB

Pamięć wewnętrzna mikrokontrolerów AVR

Programator AVR ISP

A w jaki sposób załadujemy nasz program do pamięci FLASH AVR-
ra i dane do pamięci EEPROM? Jest kilka możliwości, najłatwiej jest 
zaprogramować pamięć AVR-ka poprzez interfejs SPI. Do tego celu 
potrzebny jest specjalny adapter (nazywany programatorem AVR 
ISP). Z Jednej strony programator AVR ISP przyłącza się do 
komputera PC poprzez któryś z portów: USB, LPT, RS, a z drugiej 
strony programator łączy się z uC AVR na płytce kablem 
zakończonym odpowiednim złączem. Właśnie skrót ISP (ang.In 
System Programming) oznacza programowanie w układzie, czyli 
możliwość programowania uC bez konieczności wyjmowania go z 
urządzenia w którym pracuje. 

Page 4 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Programowanie w układzie (w systemie)

Programator AVR ISP można wykonać samemu według schematu z 
Internetu lub kupić gotowy. Na fotografiach poniżej widać dwa 
"kupne" programatory AVR ISP; pierwszy przyłączany do portu 
równoległego (LPT) komputera PC, drugi do portu USB. 

 

Programator AVR ISP przyłączany do portu LPT komputera

Page 5 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Programator AVR ISP przyłączany do portu USB komputera

Na allegro.pl jest zawsze duży wybór niedrogich i profesjonalnie 
wykonanych programatorów AVR ISP. Programator przyłączany do 
portu LPT kosztuje ok. 12zł, a przyłączany do portu USB ok. 30zł, 
więc praktycznie nie opłaca się programatora robić samemu. 

Jakby ktoś szukał schematu, to poniżej jest link do programatora 
przyłączanego poprzez portu LPT. Jest to "klon" programatora z 
zestawu uruchomieniowego STK200 produkowanego przez firmę 
ATMEL. Jak widać schemat jest bardzo prosty, z pewnością można 
znaleźć w internecie gotowy wzór płytki pcb.  

http://www.lancos.com/e2p/betterSTK200.gif

 

Z kolei poniżej wkleiłem adres strony z projektem prostego do 
wykonania programatora przyłączanego do komputera poprzez port 
USB. Prosty do wykonania, ale nie zupełnie, gdyż sam programator 
jest zbudowany w oparciu o mikrokontroler atmega8, więc żeby 
zaprogramować uC potrzebny jest inny programator. 

http://www.fischl.de/usbasp/

 

A to jest strona podobnego projektu prostego do wykonania 
programatora pod USB. 

http://www.ladyada.net/make/usbtinyisp/index.html

 

Ja zbudowałem programatory według obu tych schematów, 
betterSTK200 i Usbasp, i oba programatory dobrze mi służą. 

Programatory AVR ISP komunikują się z uC AVR szeregowo, 
poprzez interfejs SPI(ang. Serial Peripheral Interface Bus), używane 
są wyprowadzenia uC AVR: 

MOSI (Master Output, Slave Input) - wejście,

MISO (Master Input, Slave Output) - wyjście,

SCK (Serial Clock),

/RESET - podczas programowania ustawiane jest w stan niski.

Page 6 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Wyprowadzenia uC atmega8 wykorzystywane podczas szeregowego programowania

Kabel łączący programator z programowanym układem składa się z 
linii: MOSI, MISO, SCK, RESET, GND oraz z linii zasilania - jeśli 
programator zasilany jest z przyłączonego układu. Programatory 
bywają zasilane z układu docelowego lub z portu komputera. 

Większość dostępnych na rynku programatorów AVR ISP posiada 10 
pinowe złącze z wyprowadzeniami ułożonymi tak, jak w 
programatorze z zestawu stk200. Sprzedawcy piszą wtedy w opisie 
programatora: "złącze z wyprowadzeniami zgodnymi ze standardem 
stk200" albo "złącze programatora jest zgodne ze standardem 
KANDA". 

 

Złącze programatora "kompatybilne ze standardem KANDA"

Do zakupionego programatora AVR ISP powinna być dołączona 
instrukcja obsługi, oczywiście przed użyciem programatora całą 
instrukcję należy dokładnie przeczytać. Instrukcja powinna zawierać 
szczegółowy opis jak podłączyć programator do układu docelowego 
oraz jak skonfigurować oprogramowanie służące do obsługi 
programatora. Zazwyczaj "kupny" programator ma starannie 
opisane(na obudowie) rozłożenie sygnałów w złączu, jest to bardzo 
pomocne, gdyż niewłaściwe podłączenie programatora może 
skutkować uszkodzeniem programatora, programowanego układu, a 
nawet komputera. 

Kompilator

A czym jest "kompilator" i do czego służy? Mikroprocesor rozumie 
jedynie programy zapisane w języku maszynowym (kod 
maszynowy) specyficznym dla każdego typu mikroprocesora i 
zupełnie nieczytelnym dla człowieka - ciąg zer i jedynek. Natomiast 
kody źródłowe programów, czyli teksty programów zapisanych w 

Page 7 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

językach programowania (np. C/C++, PASCAL ), w których roi się 
od słów z języka angielskiego (do, for, while, return itp.), dla 
procesora nic nie znaczą. Właśnie kompilator jest programem 
tłumaczącym kody źródłowe na język maszynowy zrozumiały dla 
mikroprocesora. W kursie będziemy wykorzystywać darmowy 
kompilator AVR-GCC z pakietu WinAVR. AVR-GCC jest wersją 
znanego kompilatora GCC (GNU Compiler Collection), która tworzy 
kod wykonywalny dla mikrokontrolerów AVR. 

 

Tworzenie oprogramowaia dla uC AVR

Część praktyczna

W części praktycznej zainstalujemy pakiet WinAVR i skompilujemy 
nasz przykładowy program. Następnie zestawimy (ja będę 
montować części na płytce stykowej) prosty układ z uC AVR, 
podłączymy do uC programator ISP i na koniec załadujemy 
skompilowany program do pamięci FLASH uC AVR. 

Najnowszą wersje pakietu WinAVR można pobrać klikając w link 

WinAVR-download

. WinAVR instaluje się w systemie podobnie jak 

większość oprogramowania dla Windows, kilka kliknięć i po chwili 
wszystkie programy znajdą się na twardym dysku, gotowe do 
pracy. Kiedy program instalujący zapyta o nazwę katalogu, gdzie 
mają być zainstalowane pliki, najlepiej wpisać "C:WinAVR" (bez 
numeru wersji), dzięki temu, łatwo będzie odnaleźć kompilator na 
dysku. Na koniec instalacji uruchamiamy jeszcze skrypt 
"C:WinAVRbininstall_giveio.bat". Dodatkowych informacji, jakby się 
pojawiły jakieś problemy, można szukać przeglądając plik: 
"C:WinAVRWinAVR-user-manual". 

Zazwyczaj w kursach programowania zaczyna się od programu 
wypisującego tekst "Hello, World". My na początku nie będziemy 
używać żadnego wyświetlacza, pierwszy program przywita się 
migając na przemian dwiema diodami LED, a gdy zostanie wciśnięty 
przycisk, diody powinne zacząć migać wyraźnie szybciej. 

Page 8 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

/* "led.c" - programik do testowania środowiska WinAVR */

 

/* układ ATmega 1MHz */

 

/* PB0,PB1 - diody LED; PD0 - przycisk */

 

 

#define F_CPU 1000000L 
#include <avr/io.h> 
#include <util/delay.h>                

 

int

 main(

void


    DDRB  |= _BV(

0

)|_BV(

1

); 

    PORTB |=  _BV(

0

); 

    PORTB &= ~_BV(

1

); 

    DDRD  &= ~_BV(

0

); 

    PORTD |=  _BV(

0

); 

 
    

while

 (

1

)  

    { 
        PORTB ^=_BV(

0

); 

        PORTB ^=_BV(

1

); 

        _delay_ms((PIND & _BV(

0

))? 

1000

200

); 

    } 

Listing przykładowego programu

W tej chwili jeszcze nie będę omawiać szczegółów tego kodu, to 
będzie w następnej części kursu, teraz opiszę w jaki sposób 
wykorzystując WinAvr, można szybko skompilować przykładowy 
program w C i zaprogramować pamięć mikrokontrolera AVR, 
ponieważ początkujący mogą mieć z tym problemy. 

Proponuje gdzieś na dysku komputera utworzyć katalog o nazwie 
"kurs_avrgcc", niech tam będą trzymane przykłady do kursu. U 
mnie na dysku każdy projekt (program) będzie posiadał własny 
katalog. Katalogom projektów będę nadawał numery jako nazwy. 
Dwie pierwsze od lewej cyfry w nazwie katalogu będą oznaczać 
numer części kursu, trzecia ostatnia cyfra będzie oznaczać numer 
projektu w dane części kursu, Na przykład nazwa katalogu "011" 
oznacza pierwszy projekt w pierwszej części kursu. Jak się uzbiera 
więcej przykładowych programów, to utworzymy specjalną 
podstronę z opisem do każdego przykładu, gdzie będzie można 
szybko coś znaleźć. 

Wpierw stworzymy plik Makefile z regułami dla programu make. 
Program make automatyzuje proces kompilacji programów. Do tego 
celu posłużymy się programem MFile z pakietu WinAVR. MFile jest 
wygodnym kreatorem-edytorem plików "Makefile", z jego pomocą 
szybko i łatwo utworzymy odpowiedni plik Makefile. 

Więć uruchamiamy program MFile. 

Start >> Programy >> WinAVR >> MFile

Page 9 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Okienko programu MFile - kreatora plików Makefile

W menu programu MFile wybieramy opcję: 

Makefile->Main file name

i w okienku, które się pojawi wpisujemy nazwę pliku przykładowego 
programu: "led", nazwę pliku wpisujemy bez rozszerzenia ".c"; 

Następnie wybieramy typ układu (ja użyje ATmega8):

Makefile->MCU type->ATmega->atmega8;

typ używanego programatora

Makefile->Programmer->stk200;

oraz numer portu w komputerze z przyłączonym programatorem:

Makefile->Port->lpt1

Jeśli chcemy ręcznie edytować plik Makefile, wybieramy z menu 
opcję: 

Makefile->Enable Editing of Makefile

W przypadku programatora USBasp, trzeba w pliku Makefile ręcznie 
wpisać typ programatora, MFile nie zna programatora USBasp. W 
poniższej linijce wpisujemy typ programatora "usbasp" 

AVRDUDE_PROGRAMMER=usbasp

Następnie zapisujemy plik Makefile w katalogu naszego projektu 
"kurs_avrgcc\11" 

File->Save As

Page 10 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

i zamykamy program MFile.

Dalej uruchamiamy dostarczony wraz z WinAVR edytor tekstu 
"Programmers Notepad": 

START >> Programy >> WinAVR >> Programmers Notepad 

a w nim tworzymy nowy plik z rozszerzeniem .C

File->New->C/C++

Wklejamy do niego nasz program i zapisujemy plik z nazwą "led.c" 
w katalogu "kurs_avrgcc\11", gdzie zapisaliśmy stworzony 
wcześniej plik Makefile. 

File->Save as

Dalej uruchamiamy kompilacje programu wybierając z menu 
edytora opcję 

Tools->Make All

Program make wywołując kompilator avr-gcc oraz inne programy 
narzędziowe, skompiluje plik źródłowy programu "led.c" i utowrzy w 
katalogu projektu plik wynikowy "led.hex", który można już wysłać 
do programu obsługującego programator. 

 

Uruchomienie kompilacji programu z edytora "Programmers Notepad". 

Kliknij w obrazek, żeby powiększyć.

Jeśli kompilacja zakończyła się sukcesem w okienku Output edytora 
powinien pojawić się komunikat "Process Exit Code: 0". 

Page 11 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Okienko "Output" edytora z komunikatami o przebiegu kompilacji

W kolejnym kroku proponuje zestawić układ taki, jak na schemacie 
poniżej. Na schemacie widać układ atmega8, atmega8 wymaga 
stabilnego napięcia zasilania (od 4,5V do 5,5V), więc na schemacie 
jest też pięciowoltowy stabilizator napięcia 7805. Podłączając AVR-
ra do zasilania należy dodatkowo przyłączyć wyprowadzenie AVCC 
(zasilanie przetwornika ADC) linii zasilania oraz AGND do masy, 
nawet jeśli się nie wykorzystuje ADC. Na liniach zasilania, blisko 
wyprowadzeń uC znajdują się kondensatory blokujące 100nF. 
Wyprowadzenie RESET uC należy podłączyć do napięcia zasilania 
poprzez rezystor 4,7..10k. Nowe układy atmega8 skonfigurowane 
są do pracy z wewnętrznym oscylatorem o częstotliwości 1MHz (na 
razie nie będziemy tego zmieniać) i w tym przypadku nie potrzeba 
stosowania zewnętrznego kwarcu. Umieściłem na schemacie także 
dwie diody LED i przycisk. Dwie diody LED będą pełnić w naszym 
komputerku rolę monitora, a przycisk rolę klawiatury - taki 
komputer przyszłości 

 

Schemat podłączenia uC AVR. Kliknij w obrazek, żeby powiększyć.

Ja zmontowałem wszytko na płytce stykowej. 

Page 12 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Gotowy układ zestawiony na płytce stykowej. Kliknij w obrazek, żeby powiększyć.

A do zasilana całości ja użyje zwkłego, niestabilizowanego zasilacza 
9VDC (600mA). 

 

Uniwersalny zasilacz 9VDC(600mA), w sam raz do zasilana naszego układu

Dalej łączymy przewodem programator z uC AVR na płytce. 
Podłączając programator należy kierować się przede wszystkim 
informacjami i wskazówkami z instrukcji obsługi programatora, bo 
to jest właśnie moment, kiedy można łatwo coś popsuć. Jeśli 
składamy układ na płytce stykowej, dobrze jest dla wygody, zrobić i 
starannie opisać przejściówkę taką, jaką widać na fotografii poniżej. 

Page 13 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Przejściówka ułatwiająca podłączenie programatora do uC AVR na płytce stykowej

Pisałem już, że programatory AVR ISP mogą być zasilane z układu 
docelowego lub z portu komputera. Przy testowaniu przykładowych 
programów ja będę używał wspomnianych wcześniej dwóch 
programatorów: STK200 i USBasp. STK200 pobiera zasilanie z 
układu docelowego, więc na schemacie do pinu 2 złącza 
programatora przyłączyłem napięcie zasilania +5V. Z kolei 
programator "Usbasp" można skonfigurować za pomocą zworek, czy 
ma pobierać zasilanie z portu komputera, czy z przyłączonego 
układu. W naszym przypadku, gdy uC AVR taktowany jest z 
częstotliwością 1MHz, jeśli zamierzamy użyć programatora USBasp, 
to musimy w nim połączyć zworkę zmniejszającą prędkość 
programowania (patrz instrukcja lub opis programatora). 

I w końcu, żeby zaprogramować pamięć FLASH uC, wracamy do 
edytora "Programmers Notepad" i w menu wybieramy opcję 

Tools->Program

W tym momencie program make uruchomi program 
"avrdude"(program obsługujący programator), ten odczyta plik 
"led.hex" i zaprogramuje pamięć Flash układu atmega8. Jeśli po 
kompilacji zawartość pliku źródłowego "led.c" zostałaby zmieniona i 
plik "led.hex" byłby starszy od pliku "led.c", to wtedy make przed 
zaprogramowaniem pamięci ponownie przeprowadzi całą 
kompilację. 

Jeśli programowanie pamięci AVR-ra zakończyło się pomyślnie, to w 
okienku Output edytora powinien pojawić się znajomy komunikat: 
"Process Exit Code: 0" 

Animacja poniżej demonstruje jak powinien działać nasz 
przykładowy program. 

Page 14 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv

background image

 

Efekt działania przykładowego programu

Oczywiście kompilacje programu jak i programowanie pamięci Flash 
uC możemy przeprowadzać także z konsoli (wiersz polecenia), bez 
potrzeby uruchamiania edytora tekstu. Otwieramy okienko wiersza 
polecenia, przechodzimy do katalogu projektu i uruchamiamy 
program make z parametrem "all" lub "program". W katalogu 
oprócz pliku źródłowego programu musi znajdować się odpowiedni 
plik Makefile, bez niego program make nie będzie wiedział co 
powinien robić. 

 

Kompilacja w konsoli

I to już koniec pierwszej części kursu.

W następnej części...

W następnej części kursu zaczniemy już pisać proste programy w 
języku C, wyjaśnię też sposób programowania równoległych portów 
we/wy mikrokontrolerów AVR. Na zadanie domowe proponuję 
poczytać w Internecie na temat zapisu liczb w systemach 
dwójkowym i szesnastkowym oraz o funkcjach logicznych(AND OR 
NOT XOR). 

Kurs AVR-GCC cz.2

 

 

Copyright © 2009-2010 ABXYZ - Wszelkie prawa zastrzeżone 

Page 15 of 15

XYZ Hobby Robot-Kurs AVR-GCC, cz.1

17/04/2010

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=1&pv