cyryllo Napisano Luty 14, 2014 Udostępnij Napisano Luty 14, 2014 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ć.
mactro Luty 14, 2014 Udostępnij Luty 14, 2014 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.
cyryllo Luty 14, 2014 Autor tematu Udostępnij Luty 14, 2014 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?
Wojtek Luty 18, 2014 Udostępnij Luty 18, 2014 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ą?
Pomocna odpowiedź
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ę »