Z delikatną obsuwą, tworzymy projekt od rozpoczęcia go, do wrzucenia na
AVR'kę.
Zaraz po instalacji eclipse mamy wciąż
włączony domyślny widok, który mało ma się do widoku
programistycznego w c pod AVR. By to zmienić wchodzimy Window →
Open perspective → Other gdzie wybieramy perspektywę C/C++.
Obrazek
1:
File → New → C project
Obrazek
2:
- Dajemy nazwę projektowi (w naszym folderze workspace zostanie utworzony folder o tej nazwie z plikami projektu)
- Wybieramy projekt AVR Cross Target Application → Empty project
- Wybieramy AVR GCC toolchain który już dawno zainstalowaliśmy ;)Jeśli tego nie zrobiliśmy... To wyłączamy eclipse i wracamy do pierwszego posta na blogu :P
- Wybieramy next, w rzadnym wypadku finish.
Obrazek
3:
USBasp
nie dostarcza debbugera, jednak warto pisać w tym trybie – eclipse
na bieżąco będzie „stawiał nam robaczki” przy linijkach które
mają błędy z ostrzeżeniami, inaczej robi to dopiero przy
kompilacji (czyt. Kliknięciu młotka ). By mieć jednak plik do
wysłania na AVR'kę musimy mieć Release. (Praktycznie) nie
poruszamy tu debuggera – więc go odhaczamy.
- Pamiętamy by dać NEXT
Obrazek
4:
W MCU
type wybieramy nasz procesorek, w moim przypadku najczęściej jest
to Atmega 8. Chyba nie widziałem jeszcze projektu w którym jej
możliwości były by wykorzystane do granic. Wiadomo że nie nadaje
się do wszystkiego, natomiast przy prostych projektach dawanie
większego procka to jak używanie Arduino do mrugania diodą ;]
W MCU
Frequency wybieramy częstotliwość taktowania. Pamiętam że w
notatniku etc gdzieś dawało się definicję F_CPU etc... używając
eclipse możemy o tym szczęśliwie zapomnieć.
Wreszcie dajemy FINISH!
Wreszcie dajemy FINISH!
Obrazek 5:
- Klikamy prawym klawiszem myszy na nasz projekt.
- Dodajemy plik źródłowy (ku pamięci źródłowe *.c headery *.h )
Obrazek 6:
Nadajemy
odpowiednią nazwę i klikamy finish.
Obrazek 7:
Po
stworzeniu main.c
automatycznie zostanie on
otworzony (widać go też w drzewie projektu po lewej). Tu trzeba po
prostu wspomnieć o jednym z błogosławieństw IDE – czy warto
klepać setki literek i pamiętać dokładnie każdą zmienną? Nie
warto! Czy warto narażać się na literówki? Też nie! Tak więc
zapamiętujemy ctrl+space które
pozwala nam na przebieranie w zdefiniowanych już nazwach. Co to
oznacza? Chcąc dołączyć avr/io.h wpisujemy pierwszą literkę (a)
używamy skrótu klawiszowego i pokazują nam się odpowiedzi. Możemy
teraz je wybrać strzałkami góra dół (tak pewnie zrobił by
każdy) lub myszką (masochizm). Po zdefiniowaniu własnej nazwy
robimy tak samo, czy to jest definicja nazwy funkcji, czy definicja
zmiennej, czy definicja preprocesora #define.
Jeśli
jeszcze Cię nie przekonałem – przekonasz się już wkrótce sam
jakie to wygodne :)
Obrazek
8:
Tu program do mrugania Ledką. Co
do samego programowania jest mnóstwo książek i tutoriali, starał
się będę więc pisać nie „jak się programuje” bo o tym można
przeczytać wszędzie, ale zwracał uwagę będę „jak
programować”. Lekcja na dziś: I) piszemy komentarze, im bardziej jesteśmy początkujący tym więcej, nie zwiększają one kodu, mogą w drastycznych przypadkach nawet zmniejszać jego estetykę, ale naprawdę pomagają w nauce. II) Puki możemy piszemy maksymalnie ładny kod, nie waży zwykle dużo więcej, a przynajmniej wiemy o co w nim chodzi. Btw. Możemy prawie zawsze, choć nie zawsze nam się chce ;) III) Warto zrobić folder na komputerze gdzie będziemy mieli folder z plikami z działającym kodem i folder z dokumentacją. Poważniejszy kod = bardzo dużo komentarzy, albo dokumentacja.
Obrazek 9:
Znów
klikamy prawym na nasz projekt, tym razem żeby zmienić jego
Properties.
Oczywiście
można szybciej : Alt+Enter .
Obrazek 10:
Rozwijamy
listę AVR.
- Dodajemy nasz programator.
Obrazek 11:
- Nadajemy nazwę naszej konfiguracji
- Wybieramy USBasp, jeśli przespaliśmy post z dodaniem reguł udev to po skończeniu przerabiania tego posta, cofamy się o 1 i wykonujemy najszybsze dodanie reguły do USBasp jakie istnieje :)
- Pamiętamy by kliknąć OK.
Obrazek 12:
Pamiętamy
by wybrać nasz dodany przed chwilą programator. Inaczej nie użyjemy
go w projekcie z poziomu eclipse. A dopiero zobaczysz jakie to
wygodne.
Obrazek 13:
W AVR
możemy zmienić jeszcze w zakładce Target Hardware nasz procesor i
taktowanie procesora. Jak widać u mnie jest to 12MHz, co wymaga już
kwarcu.
Obrazek 14:
W AVR
→ AVRDude → Fuses Możemy wybrać sobie Fuse Bity, dla
początkujących: tu naprawdę można nabroić, więc nie włączamy
czegoś jeśli nie wiemy o co z tym chodzi! (By wiedzieć o co chodzi
najczęściej wystarczy przeczytać notę aplikacyjną //Datasheet
atmegi8. Dla kwarcu 12MHz wpisujemy po prostu FF i C9 tak jak jest to
na screenie. Same „wybory” pokazywane są i opisywane w oknie
niżej – więc dokładnie wiemy co tak naprawdę włączamy.
Ustawione bity są ciemno szare, a nie ustawione jasno szare – pod
tym względem autorzy skopali sprawę ;]
Obrazek 15:
Budujemy projekt młotkiem. (Jeśli wybraliśmy debug musimy „rozwinąć młotek” i wybrać że chcemy budować Release.) A następnie wrzucamy go zielonym (liściem?) guzikiem AVR.Wyszło dużo tekstu – mam nadzieję że czytelnego, a przede wszystkim pomocnego. Staram się pisać tak by nawet mój młodszy brat nie miał problemu z wykonaniem tego co tu zawarłem, stąd może się wydawać to wszystko mocno nadmiarowe. Sam jednak chciałbym czytać same blogi (i książki) które wykładają o rzeczach „jak krowie na rowie” ;]















Brak komentarzy:
Prześlij komentarz