AVR
Programowanie
w języku C

Wstęp
Instalacja kompilatora AVR-GCC
Integracja z AVR Studio
Pierwszy program w C !
Debugging
Prosty starterkit
Programowanie
Download
Linki
Strona główna
WSTĘP
Historyczne trudności...
Teraz proste ?
AVR !

Strona ta jest przeznaczona szczególnie dla hobbystów, którzy właśnie wkraczają w świat mikrokontrolerów, chcą się nauczyć programowania lub też poznać rodzinę mikrokontrolerów AVR firmy Atmel.

Historyczne trudności...
Pierwsze mikrokontrolery przeznaczone do powszechnego użytku były bardzo niewygodne dla domowych eksperymentów. Na początku wymagały dołączania zewnętrznych pamięci danych i programu. Później pokazały się wersje z wbudowaną pamięcią PROM (tylko raz można było zapisać program). Pewnym ułatwieniem, szczególnie do konstrukcji prototypowych, były mikrokontrolery z pamięcią EPROM. Te układy charakteryzowały się tym, że w obudowie było umieszczone okienko. Naświetlenie przez to okienko struktury pamięci EPROM powodowało skasowanie jej zawartości. Dzięki temu można było wiele razy zaprogramować taki mikrokontroler. Niestety proces kasowania trwał kilka do kilkunastu minut. Również cena była wysoka ze wzglądu na trudnąości wynkające z umieszczania okienka kwarcowego w ceramicznej obudowie.

Takim, chyba przełomowym, punktem było zastosowanie pamięci typu Flash. Tutaj proces kasowania trwa zaledwie 10ms i jest inicjowany elektrycznie. W związku z tym struktura jest zamykana w taniej obudowie plastikowej. Dalej jednak w procesie uruchamiania niezbędne było fizyczne przekładania kości z uruchamianego układu do programatora i z powrotem. Szczególnie jeśli w konstrukcji miał się znaleźć mikrokontroler o dużej liczbie wyprowadzeń i w obudowach innych niż DIP czy PLCC.

Teraz proste ?
Wychodząc naprzeciw tym wszystkim niedogodnościom producenci zaczęli stosować mechanizmy umożliwiające programowanie mikrokontrolerów w układzie - bez potrzeby wyciągania. Najprostszym rozwiązaniem było zastosowanie transmisji szeregowej.
SUPER !
Teraz każdy może sobie zrobić prosty układ w 30 minut i zaprogramować. Najprostszy programator składa się ze złącza DB-25 i kilku rezystorów.

W chwili obecnej najpopularniejsze firmy produkujące mikrokontrolery stosuje właśnie taki system programowania w układzie (ISP - In System Programming). Jedną z nich jest Atmel, który wprowadził ISP w kilku nowszych odmianach '51, a także we wszystkich dostępnych mikrokontrolerach AVR.

AVR !
Mikrokontrolery AVR są oparte o architekturę RISC, co umożliwia bardzo wydajną pracę, gdyż większośc instrukcji jest wykonywana w jednym cyklu zegara. Dla porównania podstawowa rodzina '51 wymaga conajmniej 12 cykli zegara na jedną instrukcję. Poza tym zawierają mnóstwo wbudowanych układów peryferyjnych. Każdy zawiera timery-liczniki, watchdog, pamięć EEPROM, komparator analogowy. Poza tym także SPI, UART, wyjścia PWM, przetworniki A/D i inne dla poszczególnych typów.
Interesujące jest to, że architektura i zestaw instrukcji zaprojektowano pod kątem stosowania kompilatorów języka C. To posunięcie wydaje się być dobrze przemyślane i uzasadnione ekonomicznie. Kod wynikowy z kompilatora C jest nieznacznie dłuższy i wolniejszy niż równoważny mu kod napisany bezpośrednio w asemblerze przez dobrego programistę. Jednak czas spędzony nad napisaniem i późniejszą weryfikacją jest dużo krótszy w przypadku stosowania jezyka wysokiego poziomu. Dodatkowo współczesna technologia pozwala na wbudowanie większej ilości pamięci i przyspieszenie pracy mikrokontrolerów przy porównywalnej cenie jednostkowej.

Powyżej wymienione atuty AVR-ów skłoniły skłoniły mnie do wybrania tej rodziny i przeprowadzenia pierwszych prób pisania programów w C na mikrokontrolery. Do tej pory w C pisałem dla komputera PC, a na 8051 tylko w asemblerze.
Na skompletowanie potrzebnych programów, konfiguracji i opisów poświęciłem sporo czasu, a Ciebie poprowadzę krok po kroku jak rozpocząć ciekawą przygodę.

Opracował Michał Lankosz sq9fqq.prv.pl     do góry