Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Programowanie AVR-ów w C - od czego zacząć?

Hetzer 07 Feb 2015 14:04 1395 11
IGE-XAO
  • #1
    Hetzer
    Level 13  
    Witam!
    Wiem, że temat poruszany kilkukrotnie, ale przez kilka lat trochę się na rynku pozmieniało, doszły nowe pozycje, więc chciałbym zaczerpnąć jakiejś aktualnej porady.

    Jakiś czas temu nauczyłem się programować w BASCOM-ie (wiem, że wielu powie że bez sensu, że się nie przyda, ale zrobiłem to z pełną świadomością, tym bardziej, że przy okazji poznałem podstawy budowy działania samego mikrokontrolera) z książki Pana P. Góreckiego, ale jak wiadomo apetyt rośnie w miarę jedzenia, dlatego chciałbym zacząć z C, który jak sądzę daje większe możliwości niż BASCOM. I tutaj mam dylemat. Zastanawiałem się nad zakupem zestawu z ATNEL. Cena dość wysoka, ale wiele osób poleca, choć słyszałem też głosy odradzające (głównie z powodu ceny). Gdzieś ktoś polecał także coś takiego http://www.mikroe.com/easyavr/gallery/ Tutaj cena jeszcze wyższa biorąc pod uwagę, że za 150 dolarów jest sama płytka, bez dodatków. Co sądzicie na ten temat? Wydaje mi się, że książka Pana Kardasia to raczej podstawa, bo chyba nie ma nic lepszego dla całkowicie początkującego w C. Warto zainteresować się od razu również tą zieloną książką język C Pasja programowania?

    Pozdr.
  • IGE-XAO
  • Helpful post
    #2
    Slawas
    Level 15  
    Każdy z produktów i wydawnictw firmy ATNEL jest wart każdej wydanej złotówki. Wiedza wyłożona "łopatologicznie" w książkach, podparta masą solidnych poradników wideo na blogu autora. Moduły może nie najtańsze, ale kupujesz, podłączasz i działa. Nawet jeśli już masz z czymś problem, autor oraz forum zapewniają mocne wsparcie. I wspiera Cię autor-praktyk a nie jakiś sprzedawca/pracownik.
  • IGE-XAO
  • Helpful post
    #3
    Piotrek_P
    Level 18  
    Potwierdzam to co napisał wyżej kolega Slawas. Skodo pisałeś coś w BASCOMie to pewnie masz jakąś płytkę testową z prockiem(szkoda że nie napisałeś nic o sprzęcie). Zdecydowanie polecam zestaw uruchomieniowy z Atnela, gdyż oszczędzi Ci nerwów przy testowaniu pierwszych programów. Dodatkowo zyskujesz błyskawiczne wsparcie producenta a także ludzi z forum.
  • Helpful post
    #4
    User removed account
    Level 1  
  • #5
    Hetzer
    Level 13  
    Dziękuję bardzo za odpowiedzi!
    Spieszę z wyjaśnieniami: Do tej pory używałem płytki, która była elementem zestawu oferowanego w sklepie avt, opisana jako AVR '2313. Z tego co wiem to trochę przerobiony klon którejś płytki z KAMAMI. Wyposażona jest w Attiny2313. Generalnie coś takiego http://sklep.avt.pl/avt3500.html tylko w nieco odświeżonej wersji.
    @Marek_Skalski nie ukrywam, że nadal w tym temacie jestem amatorem i nie chcę się rzucić na głęboką wodę. Docelowo - oczywiście że chciałbym się zająć czymś bardziej zaawansowanym, jednak nie wiem, czy taki skok od razu jest możliwy i nie spowoduje, że gdzieś tam po drodze będę miał braki. Trochę wstyd przyznać, ale na ten moment, to nawet nie do końca rozumiem jaką wymierną korzyść daje STM32 w porównaniu do na przykład AVR. Co konkretnie będzie łatwiejsze albo w ogóle możliwe do zrobienia na STM32 w porównaniu do AVR? Zdaję sobie sprawę, że internet kipi od tego, ale wszędzie jest napisane, że "jest lepszy bo tak", albo dość zawiłe objaśnienia różnic w architekturze - na ten moment nie trafia to do mnie, chciałbym jakiś praktyczny przykład albo przełożenie teorii na praktykę. Co do tego jakiego typu układami chciałbym się zajmować - automatyka domowa, ciągnie mnie też do robotyki. Co do ostatniego pytania, zdecydowanie bardziej jestem elektronikiem niż programistą (chociaż teraz ciężko to nawet rozgraniczyć, bo jak elektronik może nie być programistą...), innymi słowy, kiedyś próbowałem z C++ i pisaniem programów typowo komputerowych, ale to nie było to. Za to BASCOM i programowanie AVR-ów wciągnęło mnie bardzo.
  • Helpful post
    #6
    dondu
    Moderator on vacation ...
    Hetzer wrote:
    Co do tego jakiego typu układami chciałbym się zajmować - automatyka domowa, ciągnie mnie też do robotyki.

    ... to tym bardziej zakończ przygodę z BASCOM i rozpocznij z C: http://mikrokontrolery.blogspot.com/2011/02/kurs-jezyka-c-spis-tresci.html
    bo szybko napotkasz ograniczenia BASCOM-a i wtedy będziesz sam na siebie zły, że nie posłuchałeś rad kolegów i straciłeś masę czasu.

    A co do produktów, tych czy innych firm - oszczędzaj kasę, bo elektronika to ciągłe wydatki, ale jeśli chcesz przepłacać rób to Twój wybór. Pamiętaj jednak, że na rynku polskim działają firmy, które dobrze opanowały marketing i zawsze znajdą takich klientów, którzy nie mając rozeznania w rynku i swoich potrzebach kupują znacznie droższe produkty - czasami wręcz kilkukrotnie droższe.

    To dotyczy nie tylko zestawów, ale także wszelkiej maści gotowych modułów, których alternatywne rozwiązania równie dobre a czasami i lepsze, są dostępne na rynku w znacznie niższych cenach. Warto tutaj także wspomnieć o bezpośrednich zakupach w odległych krajach z darmową dostawą: https://www.elektroda.pl/rtvforum/topic2954681.html

    Zdecydowanie lepiej jest projektować układy samemu i testować je na płytce stykowej - tanio a przy okazji nabiera się doświadczenia w budowie urządzeń opartych o mikrokontrolery, a nie tylko ich programowaniu. W dodatku nie masz wtedy, żadnych ograniczeń typowego zestawu.
  • #7
    Hetzer
    Level 13  
    Ja w żadnym wypadku nie upieram się przy BASCOM-ie, uczyłem się go, bo wydawał mi się najbardziej podstawowy i "przejrzysty" dla zrozumienia podstaw działania mikrokontrolerów (dla kogoś kto nigdy wcześniej nie miał z nimi bezpośredniej styczności), C jest jednak dla mnie priorytetem.

    Ten marketing, o którym piszesz, jak najbardziej rozumiem, właśnie dlatego napisałem ten temat. Nie potrzebuję wyrzucać pieniędzy na wszystko co jest ładnie opisane, bo nie to jest celem.

    Projektowanie układów samemu ma z pewnością duże walory edukacyjne, ale tu obawiam się, że w efekcie spędzałbym więcej czasu nad hardwarem niż nad programowaniem. Tylko, czy to właściwie też nie jest zaletą samą w sobie?

    Chciałbym wyposażyć się w tę książkę Pana Kardasia, przeglądałem udostępnione fragmenty i myślę, że to coś czego potrzebuję, tylko znów tu się rodzi pytanie, jak bardzo książka jest powiązana z płytką uruchomieniową? Czy jest w niej dużo odwołań do tej konkretnej płytki, czy używając innej, tudzież własnych konstrukcji nie odczuje się, że książka jest pisana "pod co innego". Nie jestem w stanie tego ocenić, bo widziałem z niej tylko darmowy fragment udostępniony na stronie Atnelu. Zdaję sobie też sprawę, że płytka kosztuje niewspółmiernie dużo, biorąc pod uwagę to, że nie wyróżnia się żadnymi fajerwerkami w stosunku do innych, znacznie tańszych urządzeń. Zastanawiam się nad Xplained, ale nie wiem czy zaczynanie od razu od XMEGA to dobry pomysł. Może na początek ATMega a później sukcesywnie zabierać się za coś wyższego?
  • Helpful post
    #8
    dondu
    Moderator on vacation ...
    Są znacznie lepsze alternatywy: http://mikrokontrolery.blogspot.com/p/ksiazki-dla-ciebie.html
    Pobierz sobie przykładowe rozdziały i porównaj, zawartość spisów treści oraz ceny oczywiście.
    BTW: eBooki są znacznie tańsze i mają wiele zalet, w tym tę, że można w niej łatwo używać wyszukiwania no i zawsze można je mieć przy sobie. :)
  • #9
    Hetzer
    Level 13  
    Jesteś mi w stanie powiedzieć może coś o tej Tomasza Francuza (od podstaw do zaawansowanych aplikacji)? Po pobieżnym przejrzeniu wygląda ciekawie. To jest to samo co ta niebieska + coś dodatkowo, czy to kontynuacja/osobna część? Warto się nią zainteresować?
    PDF w moim przypadku odpada. Strasznie męczy mi się wzrok przed ekranem, generalnie nie pasuje mi ten rodzaj czytania, mimo zalet o których piszesz.
  • #11
    Hetzer
    Level 13  
    Faktycznie, jest recenzja na stronie. Przy wolnej chwili przejrzę bardziej szczegółowo. Szczerze mówiąc, przedtem nawet jej nie rozważałem. Ale wygląda na to, że faktycznie nie ustępuje tej z Atnel.

    Poprzeglądałem też różne wersje Xplained, zainteresowała mnie te z Atmega1284, ale właściwie to jest ona wyposażona tak, że lepiej chyba już faktycznie działać na płytce stykowej.