Skocz do zawartości

Programowanie mikrokontrolerów Arduino IDE czy C?


cyryllo

Pomocna odpowiedź

Postanowiłem iść dalej z zabawą niż z RPi i Arduino i zakupiłem sobie kilka Attiny oraz programator. Kupiłem sobie tez książkę do AVR i C. Ale mam takie pytanie odnośnie programowania. Czy korzystając z bootloadera arduino i jego IDE kod jest dość optymalny czy lepiej programować w C poprzez np atmelstudio czy winavr w C. Zastanawia mnie która metoda daje większe możliwości. Zapewne do prostych projektów typu kontrola prędkości obrotów jednego wiatraka na podstawie temperatury nie da dużej różnicy wydajności, ale do bardziej złożonych projektów może mieć to już znaczenie. Czy ktoś bardziej doświadczony mógł by mi trochę wytłumaczyć.

Link do komentarza
Share on other sites

Programowanie w Arduino w stosunku do C ma swoje ograniczenia. Przykładowo można zmieniać stan tylko jednego pinu na raz, a w C całego portu - 8 pinów. Warto jest nieco poznać C, żeby wiedzieć gdzie te ograniczenia są i w razie czego umieć je rozwiązać, ale... Jeśli nie planujesz projektów w których każda mikrosekunda czasu pracy mikroprocesora jest na wagę złota Arduino wystarczy. Radzę tylko zainstalować sobie Atmel Studio 6 z dodatkiem Visual Micro, który pozwala używać bibliotek Arduino właśnie w AS. Jest to dużo wygodniejsze niż toporne Arduino IDE.

Link do komentarza
Share on other sites

Mam właśnie m.in Atmel Studio 6 którego będę chciał używać.

Czyli pisząc w samym C mogę używać wątków aby wykonywać operacje jednocześnie? czy jest jakaś biblioteka specjalna dla AVR aby można było w tym samym czasie wykonywać operacje?

Link do komentarza
Share on other sites

Programowanie w Arduino w stosunku do C ma swoje ograniczenia. Przykładowo można zmieniać stan tylko jednego pinu na raz, a w C całego portu - 8 pinów.

O ile mi wiadomo AVR nie ma dostępu atomowego do bitów w rejestrach a więc każda operacja (bez względu na to jak to wygląda na poziomie listingu programu) zmiany jednego pinu portu wiąże się z wczytaniem całego rejestru, przeprowadzeniu maskowania/alternatywy na zmiennej pomocniczej i powtórnym wczytaniu całego bajtu.

Jeśli chodzi o wątki to AVR nie ma wsparcia sprzętowego tak jak to jest w mocniejszych procesorach. Można tutaj mówić tylko o pseudo wielowątkowości którą można uzyskać umiejętnie operując zasobami na poziomie programu.

Nigdy nie lubiłem tego typu udziwnień jak np. Arduino (nigdy też nie używałem) ponieważ skoro w notach katalogowych producent pokazuje przykłady w C, dostarcza środowisko programistyczne, to chyba najłatwiej iść drogą przez niego wytyczoną?

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

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.