Skocz do zawartości

Programowanie mikrokontrolerów AVR w języku C


Pomocna odpowiedź

Napisano

Witam wszystkich serdecznie,

mam pytanko odnośnie szkoleń z programowania mikrokontrolerów. Czy takie szkolenia są odpowiednie dla kogoś kto nigdy się tym nie zajmował ? Czy pracodawcy zwracają uwagę na certyfikaty z takich szkoleń ? Jak jest szansa, że zostanę "pro" w programowaniu AVR-ów jeśli moja obecna wiedza z języka C jest na poziomie podstawowym (potrafię napisać najprostszy program typu kalkulator). Szkodzi mi o konkretne szkolenie, więcej tu: Szkolenie

Z góry dziękuję za odpowiedź.

Pozdrawiam,
KRD

Nie wiem czy to żart czy reklama. Za 1800zł to możesz kupić sobie kilka książek plus kilka płytek testowych albo jedną bardzo dużą i biorąc pod uwagę liczbę kursów na necie uczysz się sam. W 3 dni nikt nie nauczy cię pisania programów w jakimkolwiek języku w takim stopniu aby to miało znaczenie przy szukaniu pracy. A nawet jeśli taki certyfikat przeważy o przyjęciu kogokolwiek do pracy to rzeczywistość i pracodawca bardzo szybko zweryfikują twoją wiedzę i umiejętności programowania mikrokontrolerów, które po 3 dniach nie ukrywajmy tego będą mizerne.

Żeby programować mikrokontrolery trzeba znać ich architekturę, co bez podstaw z dziedziny elektroniki jest ciężkie do zrozumienia. Gdy do tego dojdą peryferia i różne interfejsy i protokoły komunikacji to robi się jeszcze gorzej. Komputerowy kalkulator polegający na pisaniu i czytaniu linia po linii nie ma nic wspólnego z samodzielnym urządzeniem, którego budowa opiera się o mikrokontroler. Jeśli chodzi o samą cenę kursu, 1800zł to dla niejednej osoby miesięczna pensja, a sam kurs trwa jedynie 3 dni. Można by to porównać do próby nauki wyścigowej jazdy motorem osoby, która jeździła co najwyżej na rowerze - nawet mając przygotowany motocykl, tor i kadrę, większość na pewnym etapie nie ogarnie tempa i zaliczy glebę... Niektórych etapów nauki po prostu nie da się przeskoczyć 🙂

Właśnie dlatego wolałem zapytać ekspertów zanim się na coś takiego zapisałem. Faktem jest, że cena kursu jest kosmiczna doliczając do tego zakwaterowanie i przeżycie w jakimś hotelu. Co prawda certyfikatów nigdy nie jest za wiele no i kolejna pozycja w CV, ale po Waszej opinii jednak zrezygnuje.

Czy mógłbym prosić o jakieś rady od czego najlepiej zacząć ? Jakie książki przerobić lub skąd wziąć przykładowe płytki testowe ?

Jeśli chcesz się nauczyć C to na początek kup sobie płytkę ewaluacyjną mikrokontrolerem np. z ATmega8 lub jakimś ATtiny. Ewentualnie jak myślisz przyszłościowo to możesz zainwestować w bardziej rozbudowaną płytkę z prockiem ATmega16/32 z czytnikiem kart SD, modułem bluetooth czy innymi elementami, które przydadzą Ci się w późniejszym stopniu "wtajemniczenia", aby nie ponosić później dodatkowych kosztów związanych z zakupem nowych płytek. Decyzja należy do Ciebie.

Treści na temat budowy i działania mikrokontrolerów znajdziesz tutaj: http://mikrokontrolery.blogspot.com/

Ja się uczę programować w C z kursu na Forbot.pl 😉 POLECAM ;]

Ja mogę polecić książkę "Mikrokontrolery AVR. Język C. Podstawy programowania" Mirosława Kardasia. Znajdziesz ją na www.atnel.pl i jest tam praktycznie wszystko od architektury przez opis składni języka po przykłady i wszystko fajnie wytłumaczone. Dodatkowo niektóre przykłady przydadzą ci się później jak już będziesz bardziej zaawansowany np obsługa stosu TCP/IP. Jeżeli jesteś kompletnie zielony z elektroniki to potrzebujesz do tego na początku jakąś płytkę uruchomieniową np coś takiego: http://kamami.pl/index.php?ukey=product&productID=658 musisz tylko dokupić do tego elementy i polutować, jeszcze potrzebny ci będzie programator - najlepiej usbasp. Generalnie każda płytka uruchomieniowa i programator pod usb się sprawdzą, nie ma większego znaczenia co wybierzesz.

Inna droga to płytka stykowa, przewody i zakupy w sklepie elektronicznym, zamiast książki możesz też korzystać z darmowych kursów na necie jak ten: http://hobby.abxyz.bplaced.net/index.php?pid=4&cid=1 Sam zaczynałem właśnie od płytki stykowej i tego kursu.

W każdym razie szkolenie to najgorszy pomysł. Chyba ze wszystkimi jest podobnie - to nie jest nauka rozwiązywania problemu tylko płacenie ogromnej kasy za jakiś wpis i certyfikat nie otrzymując żadnych praktycznych umiejętności.

Aha i takie myślenie typu "zaczynaj od Attiny a później dopiero przejdź na bardziej zaawansowaną Atmegę16 lub 32" jest błędne. Atmegi nie są w żaden sposób trudniejsze a mają więcej peryferiów i zaczynając od nich nauczysz się tego samego co na attiny a nie będziesz musiał zaraz dokupować nowych dlatego że masz za mało portów albo brakuje czegoś tam.

  • Lubię! 1

Bardzo dziękuję za wyczerpujące odpowiedzi. Na pewno skorzystam z jakiś kursów przez Was załączonych. Teraz czeka mnie wyszukiwanie dokładnie jakich elementów będę potrzebował i złożenie zamówienia =)

Ktoś mi kiedyś powiedział, że programowanie mikrokontrolerów różnych rodzin jest do siebie zbliżone i jak się nauczę programować jedne to nie będę miał większych problemów z programowaniem drugich. Moje pytanko, czy jeżeli w pracy będę się zajmował programowaniem mikrokontrolera typu STM8L to czy warto, abym w domu ćwiczył na Atmegach ? Będzie mi się to jakoś zazębiało, czy to zupełnie inne bajki ?

Dzięki AVRom nauczysz się takich podstaw jak sam język, korzystanie z datasheeta i konfigurowanie z jego pomocą peryferiów. Między różnymi rodzinami na pewno są jakieś podobieństwa i będzie ci łatwiej jak programowałeś w innej ale na pewno nie jest tak, że się niczym nie różnią. Przy zmianie rodziny chyba najgorszą rzeczą jest przyzwyczajanie się do innych środowisk programistycznych, programatorów itp.

programator - najlepiej usbasp

USBasp jest dobry do AVR, ale nie działa z Windows 7 (chyba, że już wyszła jakaś aktualizacja). Polecam STK500v2, który kosztuje na Allegro praktycznie tyle samo, działa z każdym OS (w tym Win 7) i nieraz jest wyposażony w funkcję HID, która nie wymaga nawet dodatkowych sterowników (odpadają te wszystkie dziwne, 'kosmiczne' problemy początkujących z konfiguracją).

Ja mam ten programator: http://allegro.pl/nowosc-programator-isp-avr-usb-rohs-atmel-fv-i1916427474.html użytkownik Protech-Micro "NOWOŚĆ! PROGRAMATOR ISP AVR - USB RoHS ATMEL FV"

Używam go pod Windows 7 i dobrze się spisuje 😉 . Musiałem tylko ściągnąć jakieś sterowniki, ale to chwila roboty bo są ogólnodostępne. Jedyna uwaga, że nie działa z SinaProg (przynajmniej u mnie), toteż używam eXtreme Burner - AVR.

  • Lubię! 1

usbasp działa normalnie na windows 7, trzeba tylko odpowiedni sterownik znaleźć na elektrodzie. usblib czy jakoś tak się nazywał

Aha i takie myślenie typu "zaczynaj od Attiny a później dopiero przejdź na bardziej zaawansowaną Atmegę16 lub 32" jest błędne.

Zgadzam się. Jak już pisałem wcześniej:

Jeśli chcesz się nauczyć C to na początek kup sobie płytkę ewaluacyjną mikrokontrolerem np. z ATmega8 lub jakimś ATtiny. Ewentualnie jak myślisz przyszłościowo to możesz zainwestować w bardziej rozbudowaną płytkę z prockiem ATmega16/32 z czytnikiem kart SD, modułem bluetooth czy innymi elementami, które przydadzą Ci się w późniejszym stopniu "wtajemniczenia", aby nie ponosić później dodatkowych kosztów związanych z zakupem nowych płytek. Decyzja należy do Ciebie.

Ja mam STK500v2 + JTAG w jednym .

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...