1 z 16
Spis treści | Następna część kursu
Artykuł ten jest pierwszą częścią internetowego kursu pisania programów w języku C dla
popularnych 8-bitowych mikrokontrolerów AVR(AT90, ATmega, ATtiny) firmy ATMEL
z wykorzystaniem darmowego kompilatora AVR-GCC(WinAVR).
01.10.2008 Autor:abxyz
Nikogo nie trzeba przekonywać jak bardzo u\yteczny mo\e być mikroprocesor przy konstruowaniu
wszelkich sprzętów i urządzeń, a w szczególności przy budowie robocików takich, jakie
prezentowane sÄ… na naszym forum www.dioda.com.pl. 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 znalezć 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ą budującym małe
roboty-zabawki, i ten kurs programowania tak\e kierowany jest przede wszystkim do hobbystów,
entuzjastów robotyki.
Kurs. Co i jak ?
Do 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).
2 z 16
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
komputerowej.
śyły przewodów z rozciętej skrętki komputerowej doskonale nadają się do robienia połączeń na płytce stykowej.
3 z 16
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 zró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/
Pamięć dla programu i danych
4 z 16
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.
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.
5 z 16
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
6 z 16
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 znalezć 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.
Wyprowadzenia uC atmega8 wykorzystywane podczas szeregowego programowania
7 z 16
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 zródłowe programów, czyli teksty
programów zapisanych w 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 zró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.
8 z 16
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 odnalezć kompilator na dysku. Na
koniec instalacji uruchamiamy jeszcze skrypt "C:\WinAVR\bin\install_giveio.bat". Dodatkowych
informacji, jakby się pojawiły jakieś problemy, mo\na szukać przeglądając plik:
"C:\WinAVR\WinAVR-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ć wyraznie szybciej.
9 z 16
/* "led.c" - programik do testowania środowiska WinAVR */
/* układ ATmega 1MHz */
/* PB0,PB1 - diody LED; PD0 - przycisk */
#define F_CPU 1000000L
#include
#include
int main( )
(void)
( )
( )
{
{
{
{
DDRB |= _BV( )|_BV( );
|= ( )| ( );
|= (0)| (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( ))? 1000: 200);
(( & (0))? : );
(( & ( ))? : );
(( & ( ))? : );
}
}
}
}
}
}
}
}
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ś znalezć.
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.
>> Programy >> WinAVR >> MFile
10 z 16
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\011"
11 z 16
File->Save As
i zamykamy program MFile.
Dalej uruchamiamy dostarczony wraz z WinAVR edytor tekstu "Programmers Notepad":
>> 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\011", 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
zró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".
12 z 16
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.
13 z 16
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.
Przejściówka ułatwiająca podłączenie programatora do uC AVR na płytce stykowej
14 z 16
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 zró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.
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 zródłowego programu musi znajdować się odpowiedni
plik Makefile, bez niego program make nie będzie wiedział co powinien robić.
15 z 16
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).
Autor: abxyz
Przydatne uwagi (wybrane z forum )
Problem z programatorem
01.10.2008 Autor:treker
U\ywajÄ…c programatora AvrProg firmy and-tech, po wydaniu polecenia
Tools -> Program
pomimo tego, \e układ był podłączony poprawnie wyświetlany był błąd o treści
can't open device "com2": Nie mo\na odnalezć określonego pliku.
Aby naprawić ten problem nale\y pobrać avrdude, który dołączony jest do tej części kursu.
Pobrane archiwum nale\y wypakować w C:\WinAVR\bin nadpisując wszystkie pliki.
Avrdude i USBasp nie współpracują
01.10.2008 Autor:abxyz
Miałem podobny kłopot ale z programatorem USBasp. Po aktualizacji WinAVR do wersji
20080610 avrdude nie chciał współpracować z programatorem USBasp. Na forum pod
adresem: http://www.ulrichradig.de...hp?p=3792#p3792 znalazłem poprawiony sterownik dla
programatora usbasp, zamiana sterownika na poprawiony rozwiązała problem.
Pliki do pobrania:
Kod zródłowy przykładowego programu
Nota katalogowa Attiny2313
Nota katalogowa Atmega8
16 z 16
Nota katalogowa Atmega16
Nota katalogowa Atmega32
AVR Hardware Design Considerations
WinAVR-20080610 (22MB)
AVRdude 5.0
USBasp-driver-0.1.12.1.zip
Przydatne linki:
Szybki start z WinAVR
Pytania? Komentarze? Zobacz forum!
Spis treści | Następna część kursu
Autor strony nie gwarantuje, \e podawane tu informacje, porady, schematy oraz kody zródłowe programów są wolne od błędów
i w \adnym wypadku nie mo\e ponosić odpowiedzialności za jakiekolwiek szkody powstałe w wyniku ich wykorzystania.
© 2009 abxyz. Wszelkie prawa zastrze\one
Strona jest częścią wortalu dioda.com.pl
Wyszukiwarka
Podobne podstrony:
Kurs AVR GCC cz 5
Kurs AVR GCC, cz 3
Kurs AVR GCC cz 2
Kurs AVR GCC cz 3
Kurs AVR GCC, cz 1
Kurs AVR GCC, cz 5
Kurs AVR GCC, cz 4
Kurs AVR GCC, cz 2
Kurs AVR GCC cz 4
Kurs AVR GCC Wyświetlacz LCD od Nokii310
XYZ Hobby Robot Kurs AVR GCC Gamepad od PlayStation
Kurs AVR GCC Dekoder RC5
Using the EEPROM memory in AVR GCC
AVR GCC w Linuksie przykład instalacji ze źródeł
Zestaw uruchomieniowy do procesorow rodziny AVR i 51, cz 2
więcej podobnych podstron