Skocz do zawartości

Początek z AVR i C


Paddy

Pomocna odpowiedź

Witam,
zwracam się do was z prośba o pomoc, otóż chciałbym zacząć swoją przygodę z mikrokontrolerami AVR. I tu pojawiają się moje pytania od czego zacząć? Na internecie można znaleźć wiele poradników, porad itd.(większość z nich jest dość leciwa, czy zmieniło się coś znacznie w tej materii?) Zastanawiałem się nad płytką ewaluacyjną, ale nie wiem czy na początek nie starczy zwykły programator USB. Ostatnio bawiłem się trochę Arduino(coś tam się nauczyłem 🙂 ) ale wydaje mi się że programowanie samego kontrolera w języku C bez specyficznego środowiska więcej mnie nauczy. Chciałbym się was zapytać z czego korzystaliście przy nauce tego zagadnienia, chodzi mi o źródła wiedzy(książki, poradniki) oraz sprzęt(programatory, płytki, konkretne kontrolery). Narazie myślę o zakupieniu programatora USB a jako że po zabawie Arduino zostało mi trochę elektroniki(diody, silniczki, mostki H, rezystory itd.) starczy mi to na start. Będę bardzo wdzięczny za każdą poradę 😃

Link do komentarza
Share on other sites

Jak się bawiłeś Arduino, to już masz plytke z AVR na pokładzie. Nic więcej nie potrzebujesz. Ba, możesz nawet stopniowo wprowadzać w swoich skeczach Arduino to, czego się nauczysz z pragramowania w czystym C, bo to wszystko będzie działać (jedynie początkowe ustawienia mogą być inne, bo Arduino trochę rzeczy, takich jak timery, ustawia).

Ten programator nie jest konieczny, ale jest przydatny. Od biedy zawsze da się użyć drugiej płytki Arduino zamiast niego, ale wygodnie jest mieć dedykowane narzędzie. Przy okazji można nim też programować "gołe" czipy -- mi się przydaje szczególnie jak gdzieś potrzebuje coś małego, bo mogę nim programować ATtiny.

Osobiście sporo się nauczyłem z kursu Bruce Landa

ale tak naprawdę, to to wszystko jest w notach katalogowych, tylko trzeba trochę przysiąść i przeczytać.
Link do komentarza
Share on other sites

Wiem, że Arduino jest oparte na AVR, problem w tym że programując przez Arduino uzależniam się niejako od tego środowiska, a chciałbym zacząć programować w czystym C co może mi się przydać 🙂. Z tego co wiem AVR w Arduino ma jakiś bootloader, czy mogę wsadzić na Arduino Uno 'czystą' ATMegę328P i programować w C? Sam programator to nie jakiś majątek, a więc chyba warto go zakupić.

Link do komentarza
Share on other sites

czy mogę wsadzić na Arduino Uno 'czystą' ATMegę328P i programować w C

Tak, z tym że wtedy układu programujesz za pomocą programatora (nie przez port szeregowy).

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Mieszasz dwa pojęcia. Bootloader to jedno, język w jakim programujesz to drugie.

Zatem możesz programować "czystą" atmegę w Arduino przez programator, nie używając bootloadera.

Możesz także programować w czystym C i wgrywać ten kod przez USB serial używając bootloadera. Jedno drugiego nie wyklucza, są to dwa niezależne mechanizmy.

Nawet programując za pomocą Arduino IDE możesz pisać w czystym C -- wystarczy, że plik, w którym zapisujesz kod, będzie mieć rozszerzenie .c. Tak samo z .cpp dla C++ czy .s dla assemblera. Jedyny problem to to, że Arduino dokleja własną funkcję main(), która potem woła setup() i loop() -- więc jak chcesz własnego maina, to musisz wgrywać program sam, przy pomocy avrdude.

I znowu, avrdude pozwala na wgrywanie przez serial (jeśli czip ma bootloader) lub przez programator ISP. Wszystko, czego potrzebujesz, to binarka skompilowanego programu.

Link do komentarza
Share on other sites

Wydaje mi się, że nauka przy pomocy książek również może być dobrym rozwiązaniem, a już na pewno jest świetnym uzupełnieniem tego rodzaju edukacji. Dobrych książek nie brakuje.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Tak jak kilka wątków wcześniej polecam 2 książki na początek:

Williams E. - Programowanie układów AVR dla praktyków

Tomasz Francuz - Język C dla mikrokontrolerów AVR

Później już się samo uczy przez praktykę 🙂

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Właśnie chodzi mi o konkretne przykłady bardziej doświadczonych osób czyli Was,. Jak już pisałem za każdą poradę będę wdzięczny, ponieważ może mi to oszczędzić wiele szukania, nerwów i nauki czegoś co mi się nie przyda, a pewnie ucząc się z różnych źródeł takich rzeczy nie brakuje 😉

Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.