Kurs C

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Raziel
-
Posty: 15
Rejestracja: 14 gru 2005, 18:52
Lokalizacja: Poznań

Kurs C

Post autor: Raziel » 12 maja 2006, 11:38

Witam wszystkich!

Piszę, bo powoli zaczyna mnie drażnić cała ta sytuacja z pakietem WinAVR.

Od wersji z 2005 roku, do wersji 2006, na której teraz bedzie sie opieral cykl zaszło parę zmian, o których pisał nie będę, bo można je przejrzeć na stronie projektu.

Do tej pory programowałem w asemblerze i przy pomocy BASCOM dla procesorów 8051. Cykl w EdW o programowaniu w C bardzo mnie zaciekawił, a już wcześniej planowałem przesiadkę na proce AVR jako dużo nowocześniejsze, więc pojawiła się super okazja do rozpoczęcia przesiadki, ale cyrki z pakietem WinAVR już mnie zaczynają dobijać.

Z każdą kolejną wersją pojawiają się niezgodności lub niedogodności wsteczne. Za kilka miesięcy może się okazać, że większość swoich projektów trzeba co najmniej przejrzeć i poprawić, żeby dały się skompilować w najnowszej wersji.

Kupiłem książkę opisującą architekturę AVR-ów. Przykłady programów w niej zawarte pisane dla C już się nie chciały dać skompilować w wersji 2005 pakietu. Korzystając z AVRfreaks doszedłem dlaczego, ale strach pomyśleć nad możliwymi mękami, gdybym dostepu do Internetu nie posiadał. A teraz przeczytałem to i opadają mi ręce. Znowu zmiany, które póki co jeszcze nie powodują, że własne aplikacje trzeba przepisywać, ale pewnie niedługo wejdą na dobre w życie, okres przejściowy minie i się niejeden użytkownik zdziwi "wtedy się skompilowało, a teraz nie?...".

Zdecydowanie się na darmowy pakiet jakim jest WinAVR było najlepszym wyjściem zważywszy na odbiorców cyklu o programowaniu w C, ale wydaje mi się, że lepiej byłoby używać podczas trwania cyklu jednej tylko wersji, bo wprowadzanie co chwilę nowej może doprowadzić do zawrotu głowy i nadmiaru informacji (która na wstępie nauki może szkodzić).

Gdyby nie to, że programowanie nie jest mi obce to nie wiem czy bym się nie zniechęcił, ale żyłka odkrywcy pomaga mi w drążeniu tematu w razie kiedy coś nie działa. Oby wszyscy zaczynający przygodę z AVR i programowaniem w C mieli dość cierpliwości.

Pozdrawiam sedecznie

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 12 maja 2006, 13:51

Masz sporo racji. Mnie osobiście z jednej strony cieszą wszystkie zmiany w WinAVR - ponieważ pakiet staje się coraz lepszy. Jednak pod kontem prowadzonego kursu jest to dość kłopotliwe. Pokazałeś mi znakomite wyjście - trzymanie się do końca aktualnej wersji. Sam wpadłem niedawno na tą ideę, jednak chciałem dodatkowo na stronie www opisywać zmiany dla wersji nowszej - to chyba pogodziłoby interesy nas wszystkich.

Z kompatybilnością aktualnie nie jest tak źle - nawet jeśli ona zniknie w przyszłości, wystarczy napisać kilka makr. Rozumiem jednak jak potrafi to być kłopotliwe, ponieważ sam mam duży program (ponad 10 tyś linii) który wciąż jest rozwijany... teraz mam problem z jego kompilacją ;/

Raziel
-
Posty: 15
Rejestracja: 14 gru 2005, 18:52
Lokalizacja: Poznań

Post autor: Raziel » 13 maja 2006, 10:07

Koppel pisze:chciałem dodatkowo na stronie www opisywać zmiany dla wersji nowszej - to chyba pogodziłoby interesy nas wszystkich.
Doskonały pomysł. Bardziej zaawansowani będą mieli informacji o nowinkach, a "młodzież" nie będzie się nimi przejmowała na wstępnym etapie nauki.
Koppel pisze:Z kompatybilnością aktualnie nie jest tak źle - nawet jeśli ona zniknie w przyszłości, wystarczy napisać kilka makr. Rozumiem jednak jak potrafi to być kłopotliwe, ponieważ sam mam duży program (ponad 10 tyś linii) który wciąż jest rozwijany... teraz mam problem z jego kompilacją ;/
Sam widzisz :). Akurat Tobie to nie sprawi większego problemu, bo pewnie lubisz "ten sport" (dłubanie w kodzie, tak jak i ja zresztą :) ), ale podejrzewam, że początkujący na słowo "makro" ucieka gdzie pieprz rośnie. Sam dopiero zaczynam przygodę w C i wolałbym nie tworzyć już na wstępie protez, które zapewnią mi kompatybilność. Tym bardziej, że te protezy też będą wymagały przeglądania i utrzymywania, bo pakiet wciąż sie rozwija (i dobrze). I tak w kółko Macieju... Zaczniemy tworzyć protezy do protez :wink:

Zresztą na AVRfreaks na forum też ten wątek wstecznej kompatybilności był wiele razy poruszany z tego co widziałem i tak po każdej nowej wersji :). My trzymajmy się jednej wersji.

A tak z ciekawości zapytam: masz w planach (dalszych, znacznie dalszych niż obecne) obszerniejsze poruszenie tematu asemblera AVR?

Pozdrawiam serdecznie

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 14 maja 2006, 9:22

Raziel pisze:A tak z ciekawości zapytam: masz w planach (dalszych, znacznie dalszych niż obecne) obszerniejsze poruszenie tematu asemblera AVR?
Mam plan poruszenia programowania w pełnym asemblerze funkcji łączonych z C. Jednak nie zdecydowałem jeszcze czy zostanie to opisane na łamach EdW czy też informacje tą umieszczę na www. Obawiam się, że pełny asembler niektórych może przestraszyć - nie jest to tak proste jak krótkie wstawki a tak na prawdę nieczęsto się z tego korzysta. Zgodnie z aktualnym planem kursu temat ten nie jest wcale bardzo odległy.

krzych230
-
Posty: 9
Rejestracja: 14 gru 2005, 18:11
Lokalizacja: Zgorzelec

Post autor: krzych230 » 14 maja 2006, 10:19

Dorzuce swoje zdanie na ten temat.

Swoja przygode z mikrokontrolerami AVR zaczolem stosunkowo nie dwno, poznawałem zasade dzialania oraz tajniki programowania w jezyku c. Oparłem sie o wiedzie z ksiazki gdzie zarazem bylo pare przykładów programów napisanych w c i skompilowanych Win AVR-em...

Ćwiczenia w książce były kompilowane starsza wersja WinAVR-a niż ta dostepna w sieci, szczerze mówiąc straciłem dużo więcej czasu na dojście do tego dlaczego nie da sie skompilować kodów w nowszych wersjach programu niż na poznanie samych możliwości procków :)
W koncu bo długim czasie siedzenia i kombinowania, pisań postów na forach udało mi się dojść dlaczego nie działa :) Dodam ze nie umiem żadnego innego języka niż Polski :( Co oczywiście stanowiło duże utrudnienie !

Upodabałem sobie wersje WINAVR z 2004 roku i przez dłuższy czas tylko na niej sie bawiłem... Po pownym czasie kiedy moja wiedza troche sie wzbogaciła, zainstalowałem sobie najnowszą wersje i stare kody próbowałem skompilować, oczywiście masa błędów które poprawiłem :)

I TERAZ NAJLEPSZE !!!

Wszystkie kody które zawieraja obsługę wyświetlacza LCD ze sterownikiem HD, kompiluja sie poprawnie, ale po wrzuceniu ich do procka wyświetlacz nie działa albo wywala jakieś dziwne znaczki :)
Ten sam kod kompilowany WINAVR z 2004 roku po wrzuceniu do procka działa bez problemu :)
I DLACZEGO ??

Efekt :) Znowu zainstalowałem wersje z 2004 roku :)

Wniosek:

ZDECYDOWANIE KURS DO NAUKI C POWINIEN BYĆ PRZEPROWADZONY NA JEDNYM PAKIECIE !!!
Jezeli chodzi o mnie to nie umiem odrazu i porawnie poprawić kody do nowszych wersji pakietu... JAk dla mnie niektóre zmiany są tak kluczowe że mam potem duży problem z kompilacją...
Przy okazji mam do was pytanie, tych którzy w tym siedza już dłuzej...

Z czego wynikają moje problemy ??? Ze nie znam angielskiego ?? Mało jeszcze potrafie ??? A moze nie znam asemblera ?? :) A moze istnieja strony internetowe gdzie o tych zmianach ktoś pisze po polsku ??
Bede wdzieczny za mała pomoc :)


POZDRAWIAM, krzych230

smmutas
-
Posty: 2
Rejestracja: 25 maja 2006, 17:53
Lokalizacja: Poznań

Post autor: smmutas » 25 maja 2006, 19:23

Koppel, Witam. zauważyłem że zamierzasz opisać tworzenie funkcji w asemblerze do łączenia z C. Dla mnie to BARDZO WAŻNA sprawa. Goni mnie termin na uczelni a brak wiedzy jak połączyć asembler i C. Proszę o wskazówki

Awatar użytkownika
zioolek
-
Posty: 1
Rejestracja: 27 maja 2006, 0:11
Lokalizacja: Zabrze

Post autor: zioolek » 27 maja 2006, 0:25

krzych230 pisze: ZDECYDOWANIE KURS DO NAUKI C POWINIEN BYĆ PRZEPROWADZONY NA JEDNYM PAKIECIE !!!
ja dolacze sie do krzycha i powiem ze dobrze by bylo zeby oprocz jednej wersji Winavr to jeszcze jedno srodowisko IDE np AVR Studio 4.

Nowe AVRS ponoc jest tak super do avr-gcc ze na zagranicznych forach pisza zeby sie nie martwic niczym tylko pisac kod ;/ No i tu mam zonka. Jak nie klopoty z plikami naglowkowymi to z libami. A teraz mam error ze nie moze znalesc pliku bioblioteki bo go nie ma w tym katalogu gdzie faktycznie on sie tam znajduje :/

AVRS jest bardzo fajne bo ma chocby zintegrowany symulator. To pisania w asm jest poprostu boski. Chcialbym zeby mi w koncu zaczal dzialac dla c :) moze ktos juz sie tak bawil?

To moze napisac tak co w jakich wersjach uzywal i co konkretnie konfigurowal.
Nie chce sie bawic makefilami :( juz predzej bede pisal w asm :>

pozdrawiam
zioolek

ODPOWIEDZ