Uwaga! Ta strona wysyła Ci "ciasteczko".
Użytkowników online:
2
Kursy>Kurs AVR-GCC>Kurs AVR-GCC, cz.1
printer_icon

Kurs AVR-GCC cz.1

30.11.2008 ABXYZ

Nikogo nie trzeba specjalnie przekonywać jak bardzo użyteczny może być mikroprocesor, dziś nawet buty miewają wbudowany komputer:) Najwygodniejszym do zastosowania jest mikrokontroler, nazywany również mikrokomputerem jedno-układowym, ponieważ w jednym układzie scalonym znajdują się: procesor, pamięć, układy wejścia/wyjścia oraz cała reszta konieczna do działania komputera. Współczesne mikrokontrolery wyposażone są w pamięć programu typu flash, do której można łatwo zapisać program bez potrzeby kupowania drogich programatorów. Wśród hobbystów od lat najbardziej popularne są 8-bitowe mikrokontrolery AVR firmy ATMEL, dostępne w każdym sklepie z częściami elektronicznymi. Pozostaje tylko jedna trudność, tworzenie oprogramowania, bo nawet najlepszy komputer bez programu jest całkiem bezużyteczny. W internecie można znaleźć wiele na temat AVR-ów, lecz kompletnego kursu programowania w języku C w sieci nie spotkałem. Dlatego sam zacząłem pisać taki kurs, jest on kierowany przede wszystkim do hobbystów majsterkowiczów i początkujących elektroników.

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).

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

Do uruchamiania przykładów z kursu polecam płytkę stykową, ja będę korzystał z takiej małej, jak na zdjęciu poniżej. Płytki stykowe to super wynalazek, niestety te większe są nieco za drogie.

obrazek
Mała płytka stykowa.

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

obrazek
Żyły przewodów z rozciętej skrętki komputerowej doskonale nadają się do robienia połączeń na płytce stykowej.

Zdecydowanie odradzam zakup zestawów startowych z AVRem, natomiast kupić warto gotowy programator AVR ISP, w sprzedaży jest duży wybór profesjonalnie wykonanych programatorów w bardzo przystępnych cenach.

Dobrze jest mieć jakiś podręcznik do języka C. Ja polecam książkę: "Język ANSI C" autorzy: Brian W. Kernighan, Dennis M. Ritchie. Można też wydrukować sobie coś z internetu, legalnie za darmo, na przykład Programowanie w C" z Wikibooks.

obrazek
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 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

obrazek 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".

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.

FLASHSRAMEEPROM
ATtiny23132 KB128 B128 B
ATmega88 KB1 KB512 B
ATmega1616 KB1 KB512 B
ATmega3232 KB2 KB1 KB
Pamięć wewnętrzna mikrokontrolerów AVR

Programator AVR ISP

A w jaki sposób załadujemy nasz program do pamięci FLASH AVRra 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.

obrazek
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.

obrazek
Programator AVR ISP przyłączany do portu LPT komputera
obrazek
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.
obrazek
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. Programatory bywają zasilane z układu docelowego(z  płytki), z portu komputera lub nie potrzebują zasilania (np. uproszczony STK200 - programator wykonany z  kilku przewodów ).

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".

obrazek
Złącze programatora "kompatybilne ze standardem KANDA"

Do zakupionego programatora AVR ISP powinna być dołączona instrukcja obsługi, koniecznie 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 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.

obrazek
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.

/* "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);
        if(PIND & _BV(0)) _delay_ms(1000); else _delay_ms(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

obrazek
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

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.

obrazek
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".

obrazek
Okienko "Output" edytora z komunikatami o przebiegu kompilacji

W kolejnym kroku proponuję zestawić układ jak na schemacie poniżej.

obrazek
Schemat 1.1 Podłączenie AVRa. Kliknij w obrazek, żeby powiększyć.
Na schemacie jest mikrokontroler atmega8, ponieważ potrzebuje on stabilnego napięcia zasilania (od 4,5V do 5,5V), więc jest tam dodatkowo pięciowoltowy stabilizator napięcia 7805. Przy testowaniu przykładowych programów ja będę używał programatora STK200 ( zbudowanego według schematu http://www.lancos.com/e2p/betterSTK200.gif ). Programator ten pobiera zasilanie z układu docelowego, dlatego do pinu 2 złącza programatora przyłączyłem napięcie zasilania +5V . Jeśli programator nie wymaga zasilania (uproszczony STK200 - wtyk i kilka przewodów ), albo jeśli programator zasilany jest z portu komputera PC, wtedy pin 2 złącza programatora pozostawiamy niepodłączony. W trzecim przypadku, gdy mikrokontroler ma być zasilany z programatora, wtedy oczywiście stabilizator 7805 jest zbędny, a napięcie do zasilenia mikrokontrolera pobieramy z pinu 2 złącza programatora. Dodatkowo należy przyłączyć wyprowadzenie AVCC (zasilanie przetwornika ADC) do linii zasilania oraz AGND do masy, nawet jeśli nie korzystamy z 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ć); nie potrzeba przyłączać zewnętrznego rezonatora (kwarcu). W przypadku gdy korzystamy z programatora USBasp, trzeba w nim połączyć zworkę zmniejszającą prędkość programowania (patrz instrukcja lub opis programatora). 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

Ja zmontowałem wszytko na płytce stykowej.

obrazek
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).

obrazek
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.

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

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 AVRra 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.

obrazek
Efekt działania przykładowego programu

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ć.

obrazek
Kompilacja w konsoli

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).

Pliki

kurs_avrgcc_011.zip - Spakowany katalog z plikami źródłowymi pierwszego przykładu.

Inne artykuły na podobny temat:

  1. Szybki start z WinAVR
  2. AVR-GCC w Linuksie
  3. Atmel AVR GNU Toolchain


Kurs AVR-GCC cz.2



legenda

Komentarze (15)

Stanley
12.02.2016 (12:45)
gość
Jaka jest różnica między zastosowaniem uniwersalnego zasilacza sieciowego oraz stabilizatora napięcia (tak jak w powyższym przykładzie) od zastosowania "Stabilizowany zasilacz sieciowy. Napięcie zasilania: od 110 do 240 V. Napięcie wyjściowe: 5 V DC. Prąd wyjściowy: 2 A. Złącze: wtyk DC 5,5 / 2,1 mm."
Seba
26.12.2014 (15:25)
gość
W pierwszym programie (migającym dwoma diodami) był mały błąd, przez który dioda podłączona do PB0 migała bardzo słabo. To przez to, że program ustawiał PB0 jako wejście i zasilał LED przez rezystor podciągający. Wystarczy wziąć prawą stronę w nawiasy:
DDRB |= (_BV(0)|_BV(1));
Ale i tak dzięki za napisanie kursu:) Dopiero zaczynam, ale widzę, że jest bardzo przydatny.
Seba
22.12.2014 (22:00)
gość
"Zapraszam do lektóry!" Pisze się "lektury" :P
nikiniko
18.06.2014 (21:56)
gość
Super kurs. Chciałem podziękować autorowi. pozdrawiam
Patrycja
08.02.2014 (12:11)
gość
Fajny kurs i prosto wytłumaczone :)
Rafał J
19.01.2014 (07:26)
gość
Dziękuję za ten kurs.
W dzidzinie programowania byłem całkowitym laikiem a jednak po dłuższej analizie tekstu wszystko do mnie docierało. Uważam że ten kurs pozwolił mi nauczyć się korzystania z uC i realizacji wielu moich projektów które trudno mi byłi wykonać przy pomocy elementów dyskretnych (elektornikiem też jestem początkującym :-)
Pozdrawiam.
pawel
19.11.2013 (07:22)
gość
Najlepszy kurs w internecie jaki spotkałem. Wystarczy przeczytać te kilka części i potem ze wszystkim można sobie samemu poradzić.
Brakuje mi takiego kursu gdzie miałbym wszystko w jednym miejscu o Arduino. Wydaje mi się, że Arduino i Android to przyszłość i doskonałe ułatwienie życia programisty (mikrokontrolery będą coraz szybsze i tańsze).
Pozdrawiam i gratuluje zdolności dydaktycznych.
afa
18.09.2013 (20:02)
gość
Problem rozwiązany. Nie wiedziałem, że trójkącik na wtyczce KANDA oznacza pierwszy pin. Stąd źle podpiąłem programator do układu.
afa
12.09.2013 (10:02)
gość
Korzystam z programatora USBASP i przy wgrywaniu programu wywala mi taki komunikat :
"avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check."
Dodam, że dioda na programatorze sygnalizująca źródło napięcia gaśnie w chwilę po tym jak podłączę programator do układu (złożonego jak na schemacie w tym artykule) i znika widoczność programatora przez komputer !
Gdy wypnę atmege8 z układu to dioda power supply świeci się a programator jest widoczny jako urządzenie wpięte w port USB komputera.
Proszę o podpowiedzi i serdecznie pozdrawiam.
Rafał
abxyz
03.05.2013 (22:20)
autor strony
Nie mówię, że zestawy startowy jest złym rozwiązaniem, jednak jeśli początkujący elektronik-programista sam poskłada układ z mikrokontrolerem, choćby na płytce stykowej, i uruchomi z sukcesem swój pierwszy program, to zyskuje większą satysfakcję, niż w przypadku gdyby bawił się gotowym zestawem.
Marcin
03.05.2013 (17:09)
gość
dlaczego zestaw startowy jest zlym rozwiazaniem?
Robson
02.03.2013 (13:59)
gość
Kurs jest naprawdę świetny. Duże podziękowania dla autora:)
jaco
01.05.2011 (23:10)
użytkownik
Dziękuję za chęć podzielenia się swoją wiedzą. Artykuł świetny!!!
Moje pierwsze starcie z mikrokontrolerami zacząłem właśnie od tego kursu. Polecam wszystkim początkującym!!!
Damian
02.09.2009 (19:39)
gość
Wielkie dzięki dla autora tego kursu; super sprawa; pozdrawiam
matinho
08.05.2009 (11:39)
gość
Odwalasz tu kawał dobrej roboty. Gratuluje i pozdrawiam
Kursy>Kurs AVR-GCC>Kurs AVR-GCC, cz.1
Ostatnie artykuły