- posted
13 years ago
ISP przez LPT w AVR Studio
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
W dniu 2011-01-06 21:45 4CX250 napisał(a):
AVR ISP (oznaczenie Atmela: ATAVRISP) ma port szeregowy (COM) a nie równoległy (LPT):
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
W dniu 2011-01-07 13:26, 4CX250 pisze:
Bo prawdopodobnie dodałeś tylko pliki nagłówkowe, a zapomniałeś o dodaniu plików *.c z tej biblioteki do projektu.
- Vote on answer
- posted
13 years ago
Użytkownik "4CX250" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:ig70n5$2il7$ snipped-for-privacy@news2.ipartners.pl...
Wychodzi na to że sam sobie odpowiadam na stawiane tu pytania :) ale opiszę co i jak bo być może ktoś inny będzie miał takie problemy.
Na szczęście znalazłem kolejna i ostateczną przyczynę i program dał się już bez błędów skompilować oraz zlinkować. O ile wcześniej sygnalizowałem że sa błędy w źródłach gdzi zapomniano kilku literek "i" to teraz znalazłem przyczynę raczej po mojej stronie wynikającej z niewiedzy.
Wydawało mi się że samo #include plik.h w main.c powinno wystarczyć ale okazuje się że kompilator zrobi tylko to co mu się zleci w Makefile. Otóż plik Makefile musiałem uzupełnić dopisując w nim wszystkie wymagane pliki z dołączaniej biblioteko aby zostały skompilowane przed zlinkowaniem.
# List C source files here. (C dependencies are automatically generated.) SRC = $(TARGET).c KS0108.c graphic.c KS0108-AVR.c
I to wszystko.
Powiem szczerze że pisząc wczesniej programy tylko w asemblerze łatwiej mi było zapanować nad wszystkim. No cóz uparłem się uczyć w C. Na PCty natomiast pisałem dawno już temu w Turbo Pascalu a potem w Borland Pascalu i nawyki są inne.
Marek
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
No :). Poczytaj trochę o tym. Ja z mojej strony wrzucę Ci 3 zdania komentarza, ale to za mało - serio, poczytaj więcej!!
Pisząc projekt w C działamy z reguły tak, że każdy plik kompilujemy OSOBNO (można więc kompilować różne fragmenty kodu z różnymi ustawieniami :)). Tworzą się w ten sposób pliki *.o. Żeby kompilator mógł obsłużyć jakieś Twoje biblioteki musi wiedzieć, jakie są w niej funkcje, z jakimi argumentami itd. Dlatego dołącza się pliki *.h. Później, wszystkie pliki *.o trafiają do linkera, ten to wszystko dopiero łączy w całość... no i jeśli Ty wywołujesz w jednym z plików *.c funckję FunkcjaJakastam(), to linker MUSI znaleźć tą funkcję w jakimś innym pliku :). To tyle ;)...
No a teraz do rzeczy - AVR Studio korzysta także z WinAVR - z tych samych narzędzi (o ile piszesz w C, bo możesz pisać też w Assemblerze i wtedy AVR Studio radzi sobie sam). Tyle tylko, że WinAVR wtedy sam dba o stworzenie Makefile itp. Jeśli dodasz do projektu plik np. Ks0108-AVR.c, od razu wpis o tym znajdzie się w Makefile i wszystko się poprawnie skompiluje. Dlatego na początek polecam korzystać z AVR Studio :)...
- Vote on answer
- posted
13 years ago
Użytkownik "Konop" snipped-for-privacy@gazeta.pl napisał w wiadomości news:ig7bcp$b15$ snipped-for-privacy@inews.gazeta.pl...
Czy owe korzystanie jest samopylne czy trzeba coś gdzieś poustawiać? W AVR Studio mam narazie problem że coś zacina się czasem na dłuższą chwilą i to mnie irytuje. Musze znaleźć przyczynę.
To jest rzeczywiście dobry argument aby z niego korzystać. Narazie motam się jeszcze gdyż tak naprawdę chodzi mi o poznanie samego c w sobie.
Marek
- Vote on answer
- posted
13 years ago
Ogolnie jesli zainstalujesz WinAVR a potem AVR Studio to Studio wykrywa WinAVR i uzywa automatycznie.
WinAVR przestal byc rozwijany okolo rok temu, ci sami ludzie tearz rozwijaja atmelowska wersje WinAVR nazywana AVR Toolchain. Jesli chcesz miec najnowsza wersje (co Tobie radze jesli nie uzywasz starego kodu) to wejdz na:
AVR Studio 4.18 (build 684) (116 MB, updated 11/09) AVR Studio 4.18 SP3 (b716) (31 MB, updated 9/10) AVR Toolchain Installer (87 MB, updated 9/10) For use with AVR Studio 4.18 SP3
Jesli nie chcesz bawic sie w makefile to uzywaj AVR Studio od poczatku do robienia projektow, tworzysz nowy projekt (menu Project -> New Project) i wybierasz typ AVR GCC. AVR Studio zajmie sie detalami jak makefile, musisz tylko dodac wszystkie pliki do projektu.
Jesli chodzi o biblioteki to osobiscie kopiuje biblioteke do katalogu projektu (razem z moim kodem). Nie jest to na pewno "jedyna sluszna droga" i mozesz robic jak Ci pasuje ale tak mnie zycie nauczylo i odpowiada mi to z kilku wzgledow, miedzy innymi:
-mam pewnosc ze moj kod i biblioteka w danej wersji sa przetestowane, wspolpracuja ze soba i kompiluje sie bez bledow. Jak masz jedna kopie biblioteki i zmienisz na nowsza/inna wersje moze nie dzialac (to nie jest najgorsze, przynajmniej wiesz na czym stoisz) lub dzialac troche inaczej (o czym przewaznie dowiadujesz sie od wkur**ch uzytkownikow).
-jak robie backup to musze sie martwic tylko o moj katalog projektu, mam tam wszystko do odtworzenia calego projektu (trzymam tez tam informacje jaka wersja WinAVR zostala uzyta). Jak po kilku latach chcesz cos szybko zmienic to moze sie okazac ze najnowsza, aktualna wersja WinAVR nie kompiluje Twojego kodu tak samo albo nie kompiluje w ogole. Jak masz oryginalny kod (kompletnie z bibliotekami) i ta sama makefile, kompilujesz ta sama wersja WinAVR to masz gwarancje ze mozesz odtworzyc projekt i cos zmienic jak potrzeba.
-czasem potrzebuje zmienic/przystosowac biblioteke do moich potrzeb, jesli mialbym tylko jedna kopie wspolna dla wszystkich projektow to prawdopodobnie te zmiany sp***y inne projekty.
Tomek
- Vote on answer
- posted
13 years ago
Użytkownik "Tom" snipped-for-privacy@no.spam.invalid> napisał w wiadomości news:ig97mc$cs7$ snipped-for-privacy@news.eternal-september.org...
Dzięki za porady, co do katalogów to masz zupełną rację. W ASM jak pisałem to też jakieś swoje i cudze zestawy zawsze kopiowałem do katalogów roboczych.
Marek
- Vote on answer
- posted
13 years ago
Możesz w ogóle pominąc pliki makefile i uruchamiać kompilator ręcznie. Dla malych projektów to czy skompiluje jeden czy cztery pliki za kazdym razem jest bez znaczenia.
- Vote on answer
- posted
13 years ago
Użytkownik "Sebastian Biały" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:iga7cr$n06$ snipped-for-privacy@news.onet.pl...
Tak, ale na "dłuższą metę" jest to upierdliwe udpalanie z palca.
Marek