HomeMade

Pełna wersja: AVR-GCC
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
AVR-GCC jest darmowym kompilatorem języka C (licencja GNU) służącym do pisania programów dla mikroprocesorów AVR. Każdy język programowania ma swoich zwolenników i przeciwników. Na forach przytoczono setki argumentów za i przeciw różnym kompilatorom dlatego pozostawmy tą dyskusję i skupmy się na ich praktycznym wykorzystaniu.
Nie jestem ekspertem od języka C dlatego chętnie poznam technikę programowania w tym języku. Liczę na aktywny udział w dyskusji Kolegów piszących w tym środowisku od wielu lat oraz takich jak ja, którzy chcieliby tą wiedzę pogłębić.

Napiszcie proszę o swoich doświadczeniach z tym językiem, o ciekawych stronach z opisami, literaturą, przykładami, miejscach gdzie możemy pobrać dodatkowe pliki do obsługi otoczenia procesora, może jakieś własne projekty.

Kurs AVR-GCC na diodzie
AVR-GCC w praktyce - wątek na elektrodzie
AVR_GCC Tutorial (WinAVR)
AVR Libc

Początki programowania w C
WikiBooks - Język C
WikiBooks Programowanie w C - wersja pdf
Kurs C++

Strony z gotowymi funkcjami do obsługi urządzeń:
Procyon AVRlib
AVR projects
radzio.dxp.pl

##
Dużo tego jak na początek, okazuje się, że WinAVR jest bardzo popularny wśród programistów. Dla mnie składnia języka jest dość zawiła no i brak gotowców. Niby w sieci prawie wszystko jest ale nikt gwarancji nie da jak to będzie działać dlatego sami musimy to przetestować. Mam pytanie do zaawansowanych programistów, sami budujecie wszystkie biblioteki do obsługi LCD, RS232, I2C, itd. Pewnie w komercyjnych kompilatorach za kasę firma daje gotowce.

Tu jest trochę gotowców do zassania:
AVR-GCC Tutorial
Obsługa SPI - blog z opisem i kodem obsługi SPI
(29-08-2010 18:30)dipol napisał(a): [ -> ]Mam pytanie do zaawansowanych programistów, sami budujecie wszystkie biblioteki do obsługi LCD, RS232, I2C, itd. Pewnie w komercyjnych kompilatorach za kasę firma daje gotowce.

Nie jestem zaawansowanym programistą - a tylko amatorem ale jednak wrzucę 3 grosze :
Osobiście unikam jak ognia gotowców - chyba że takie które prześwietliłem od A do Z w wykonywaniu procedur. Gotowce czasami
potrafą nieźle ograniczyć możliwości albo zakłócić inny proces jeśli są słabo opisane przez autora lub źle zrozumiane przez aplikanta.
Dlatego prawie wsztstko robię po swojemu od A do Z .
Co oczywiście polecam Wink
Krzysztof, metoda dobra ale bardzo pracochłonna. Przećwiczyłem to budując przez lata własne procedury i macra w assemblerze. Język C na wiele zalet ale perspektywa budowania własnego zaplecza bibliotek od zera zdecydowanie mnie zniechęca. Gdyby udało się zebrać grupę kilku Kolegów zainteresowanych współpracą i testowaniem byłoby łatwiej i szybciej. Jest kilka przykładów fajnych projektów pisanych w C grupowo. Może ktoś będzie miał gest i położy na forum coś z własnych zasobów do poćwiczenia.
Ja jeszcze z ciekawych narzędzi przydatnych, gdy się jest przyzwyczajonym do własnego środowiska programistycznego /w moim przypadku vim/, podrzucę odnośnik do mfile:

http://www.sax.de/~joerg/mfile/

To oprogramowanie, które po kilku kliknięciach wygeneruje dopasowany do potrzeb plik Makefile do naszego projektu.

Żeby następnie skompilować nasz projekt w avr-gcc, wystarczy napisać

make

A żeby zaprogramować podłączony procesor:

make program

Działa pod Linuksem i pod Windows. Wymaga drobnych poprawek w celu bezproblemowego uruchomienia pod (przykładowo) Ubuntu:

plik: mfile.tcl
pierwszą linijkę zastępujemy
#!/usr/bin/wish

(bo kto ma dziś tixwisha?)

oraz - jeśli nie chcemy instalować do /usr/local/, trzeba poprawić linijkę

if {$tcl_platform(platform) == "unix"} {

na

if {$tcl_platform(platform) == "cokolwiek"} {

Miłego korzystania :-)

73 de sq9nox /5
Mikro-kontrolery ATMEL-a mają wiele zalet przemawiających za ich stosowaniem w konstrukcjach amatorskich. Jedną z nich jest dobre i darmowe środowisko projektowe. Nie mniej zawsze na końcu potrzebny jest programator. Aktualnie zastanawiam się nad wyborem czegoś do zbudowania w domu. Problem w tym, że AVR Studio zaprojektowano dla Windows i choć można go uruchomić w Linuksie, z programatorem już nie jest tak prosto. Może jakaś podpowiedź od bardziej doświadczonych Kolegów ?
Polecam programator STK-500. Współpracuje bezpośrednio zarówno z AVR-GCC (WinAVR), AVRDude, AVRStudio, jak i Bascomem. Ponieważ używam wyłącznie komputerów przenośnych nie bez znaczenia jest to, że jest to programator USB. Wyjście w standardzie 2x5 KANDA. Mój egzemplarz ma możliwość prostego przejścia do trybu AVR910 (RS232) oraz może służyć jako konwerter USB - RS232 TTL (tylko linie RX i TX). Ma także wyprowadzone źródło sygnału zegarowego, który może służyć do przeprogramowywania mikrokontrolerów z ustawionym fuse-bitem taktowanie zewnętrzne. Urządzonko ma także buforowanie sygnałów linii SPI. Cena ok 50 - 70 zł. Kupić można tu: http://www.sibit.pl/sklep/ lub, w innym wykonaniu, na znanym portalu aukcyjnym. Używam od ok. 2 lat - działa niezawodnie w systemach Windows XP i Windows 7.
Jeśli to ma być programator HM to polecam ciekawą i bardzo prostą konstrukcję programatora USBasp.
Wykonywany w wielu odmianach, jest dokumentacja, soft, pliki PCB, jest na tyle prosty, że możemy zrobić druk pod własne potrzeby, obudowę. Zastanawiam się, czy nie zrobić druku pod jakąś zgrabną i tanią obudowę.
Z fabrycznych programatorów polecam modele które obsługują nową rodzinę procesorów Xmega np AVRISP MKII.
Ćwiczebnie zmontowałem ten programator. Wybór był prosty: miałem akurat "pod ręką" ATtiny2313. AVRDUDE rozpoznaje go prawidłowo w obu znanych mi systemach. Niestety, WINE ma problem z emulacją USB. Jak do tej pory nie udało mi się uruchomić transmisji do programatora z AVR Studio. Jeszcze się nie poddaję ...
(12-10-2010 16:59)sp9fkp napisał(a): [ -> ]Problem w tym, że AVR Studio zaprojektowano dla Windows i choć można go uruchomić w Linuksie, z programatorem już nie jest tak prosto. Może jakaś podpowiedź od bardziej doświadczonych Kolegów ?

Ja pod Linuksem programuję za pomocą kabelka wpiętego w płytę z Atmelem [pracuję na klasycznej płytce testowej]. Całość konfiguruje się jako programator "bascom" na porcie /dev/parport0, i zapisuje plik .hex [AVR studio powinien go potrafić wygenerować] za pomocą programu AVRdude. Całość mam zautomatyzowaną dzięki Makefile wygenerowanemu za pomocą programu, który opisałem parę wpisów wcześniej.

73 de Łukasz sq9nox /5
Stron: 1 2
Przekierowanie