logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] [Atmega328P][Arduino Uno]Programowanie przy użyciu nazw rejstrów i portów

Lukasz_wat 29 Sty 2012 00:19 6341 18
REKLAMA
MediaMarkt Black Week
  • #1 10462679
    Lukasz_wat
    Poziom 10  
    Witam,

    Niedawno kupiłem zestaw Arduino Uno z procesorem Atmega328P. Programowanie przy użyciu oprogramowania Arduino jest błyskawiczne i przebiega bez problemów. Jednak chciałbym programować Arduino w C tak jak się programuje np. zestaw uruchomieniowy ZL3AVR tzn. stosując nazwy rejestrów i portów
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    , a nie stosując funkcje
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Czy jest taka możliwość, co byłoby potrzebne i na co zwrócić uwagę?
    Czytałem, że chyba potrzebny byłby programator? Są 3 opcje programatora:
    - AVR ISP USB
    - stk 500v2
    - USBasp
    Czy któryś z tych programatorów, będzie odpowiedni? Proszę o podpowiedź.
    Dodam, że Arduino posiada złącze ICSP.
    Posiadam laptopa, więc pod ewentualny programator przewiduje port USB.
    Dodam, że jestem początkujący w świecie mikrokontrolerów.

    Pozdrawiam i dziękuję
  • REKLAMA
    MediaMarkt Black Week
  • Pomocny post
    #2 10462718
    mirekk36
    Poziom 42  
    Pewnie, że każdy procek AVR można programować w czystym C. Programator USBASP będzie moim zdaniem najlepszy - sam go używam od lat i to do wszystkich AVR'ków jakie mam i programuję. Przy okazji zapoznaj się z tym artykułem i nie tylko tym na moim blogu jeśli np masz Win7

    http://mirekk36.blogspot.com/2011/05/wszystko-o-usbasp.html

    Będziesz nim mógł programować i zestaw uruchomieniowy który masz i to arduino. Sama idea arduino jest nawet fajna, można też dużo czerpać z wielu gotowych przykładów w necie ale już sam edytor do pisania programów jest toporny jak nieoheblowany klocek ;)

    Do pisania programów w czystym C możesz skorzystać z AVR Studio ale lepiej od razu pomyśleć o Eclipse albo w najgorszym przypadku o CodeBlocks ;) rzuć też okiem tutaj:

    http://mirekk36.blogspot.com/2011/11/dlaczego-eclipse-zamiast-avr-studio.html
  • REKLAMA
    MediaMarkt Black Week
  • Pomocny post
    #3 10462753
    suser222
    Poziom 24  
    Nie potrzeba żadnego programatora wystarczy program ArduinoUplader. Wgrasz nim hex'a np. z AVR-Studio, do jego załadowania wykorzystywany jest bootloader Arduino.
  • #4 10464665
    Lukasz_wat
    Poziom 10  
    Witam,

    Dziękuję serdecznie za obie wypowiedzi. Bardzo dużo informacji można znaleźć na twoim blogu mirekk36. Czytając go pojawiła się pewna niejasność, bo właśnie na twoim blogu umieszczona jest informacja w blogu "Wszystko o USBasp", że programatorem USBasp można programować Atmege328:
    Cytat:
    Ja np najczęściej korzystam z takich jak:
    Atmega88/168/328

    a na stronie o programatorze USBasp:
    Link
    w zakładce "Obsługiwane układy" nie ma wymienionego procesora Atmega328?
    Skąd może być ta rozbieżność i którą informację uważać za prawdziwą?

    Pozdrawiam
  • #5 10464897
    mirekk36
    Poziom 42  
    Lukasz_wat napisał:

    Skąd może być ta rozbieżność i którą informację uważać za prawdziwą?


    Przykro mi ale ja nie odpowiadam za jakieś niesprawdzone informacje, a to co piszę opieram na tym co w 100% robię. Procesory ATmega328P to jedne z moich ulubionych i gdybym nie mógł ich programować to byłaby skucha ;) a jak pisałem używam tylko USBASP.

    Poza tym zassaj sobie program MkAvrCalculator i z jego zakładki "Ustawienia" zainstaluj AVRDUDE. Potem zajrzyj do pliku config. Zdziwisz się ;) bo ta moja wersja AVRDUDE obsługuje już na dzień dzisiejszy więcej procesorów niż standardowa AVRDUDE. Po części to dzięki koledze SunRiver, który dopisywał definicje innych procesorów niż w standardzie. A użytkownicy MkAvrCalculatora z powodzeniem z nich korzystają do dzisiaj. Zobaczysz tam więc np niespotykane ATmega48P albo ATmega88P ;)

    Jeśli chodzi o procki ATmega328 to ja w sprzedaży widziałem i działałem tylko na wersjach ATmega328P. Tych bez literki P na końcu nie widziałem.

    Dodano po 1 [minuty]:

    adamslodki napisał:
    Nie potrzeba żadnego programatora wystarczy program ArduinoUplader. Wgrasz nim hex'a np. z AVR-Studio, do jego załadowania wykorzystywany jest bootloader Arduino.


    Tak? a co będzie jak zmienię sobie taktowanie np na inny kwarc niż 16MHz ??? Będzie skucha.... Więc nie pisz, że nie potrzeba - owszem nie jest to koniecznością, jeśli na siłę chcemy się przywiązać do jednej wersji platformy. Ale gdy chcemy zrobić coś więcej to już inna sprawa i bez programatora sprzętowego ani rusz.
  • #6 10465173
    suser222
    Poziom 24  
    Cytat:
    Tak? a co będzie jak zmienię sobie taktowanie np na inny kwarc niż 16MHz ??? Będzie skucha.... Więc nie pisz, że nie potrzeba - owszem nie jest to koniecznością, jeśli na siłę chcemy się przywiązać do jednej wersji platformy. Ale gdy chcemy zrobić coś więcej to już inna sprawa i bez programatora sprzętowego ani rusz.


    zgadzam się, ale autor tematu chce programować arduino w czystym C, wiec jeśli korzysta z płytki arduino którą można programować bezpośrednio, to po co mu programator?
  • #7 10466797
    tmf
    VIP Zasłużony dla elektroda
    Mirku, co masz do CB? Akurat w porównaniu do Eclipse to IMHO ma same zalety.
    Co do arduino - moim zdaniem największą zaletą tego środowiska jest C++, pisanie w C to IMHO krok wstecz. Ale oczywiście co kto lubi.
    Pomyślałbym też o np. AVR Dragon, jako programatorze. Kosztuje więcej, ale możliwości bez porównania większe.
  • #8 10466955
    mirekk36
    Poziom 42  
    tmf napisał:
    Mirku, co masz do CB?


    Nie do CB nic nie mam - po prostu go akurat nie używam, ja osobiście bardziej wolę Eclipsa - ale to nie oznacza, że to jedynie słuszna droga. To tylko moje subiektywne zdanie. A wręcz pisałem wyżej że lepiej Eclipse lub CB niż AVRS5 ;)


    tmf napisał:
    Co do arduino - moim zdaniem największą zaletą tego środowiska jest C++, pisanie w C to IMHO krok wstecz. Ale oczywiście co kto lubi.

    Tu się w pełni zgadzam no może bez tego kroku wstecz bo jednak C dla tak małych procków to takie naturalne podejście. Sam edytor Arduino jest tylko wg mnie strasznie kiepski i koślawy - co nic nie umniejsza samemu Arduino jako takiemu. W końcu można się zaprzeć i w Eclipse nawet pisać i kompilować dla Arduino - nawet są jakieś poradniki w tym temacie. Ale jak to czytałem to już bym chyba wolał - prędzej przejść na czysty C++ z AVR GCC. Za to podziwiam ludzi, którzy w tym Arduino IDE piszą takie długaśne kody - ja bym nerwowo nie wytrzymał po prostu ;)
  • #9 10466994
    tmf
    VIP Zasłużony dla elektroda
    Na temat Adruino IDE się nie wypowiadam, bo go nie zam :)
    Ale też nie skazuj na śmierć od razu AS5 - IMHO jest równie ociężały co Eclipse i to właściwie jest jego jedyna wada. Ale ma też zalety - w stosunku do AS4 właściwie tylko jedną - wsparcie dla ASF.
  • #10 10467173
    mirekk36
    Poziom 42  
    tmf napisał:

    Ale też nie skazuj na śmierć od razu AS5 - IMHO jest równie ociężały co Eclipse i to właściwie jest jego jedyna wada. Ale ma też zalety - w stosunku do AS4 właściwie tylko jedną - wsparcie dla ASF.


    Nie skazuję, raczej czekam na nowszą wersję hmm może AS6 ? ;) ... I jestem świadom, że AS5 ma kilka poważnych zalet w stosunku do Eclipse ....... Nie mniej jednak w takiej wersji jak jest obecnie bardzo ale to bardzo mi nie odpowiada. A wszyscy początkujący po prostu sami na własne życzenie skazują się na kupę problemów wybierając AS5. Już lepiej żeby zostali przy AS4 .... chociaż nie tfuu już lepiej żeby wzięli w łapki jak nie Eclipse to przynajmniej CB właśnie.
  • #11 10468884
    tmf
    VIP Zasłużony dla elektroda
    No to prawda. Ale zauważ, że większość problemów początkujących wynika z niechęci do nauki :) Jednak jak się bierze zaawansowane narzędzie jakim jest IDE to warto najpierw coś poczytać. A tu mamy gościa, który zazwyczaj nie zna IDE, i co gorsze nie zna też C, więc sam nieświadomy ładuje się w problemy. Ktoś nawet tylko lekko obeznany, zauważy, że np. program mu się kompiluje z O0 i będzie poszukiwał przyczyny. Początkujący uzna, że wszystko jest ok i wpakuje się w kłopoty psiocząc potem na IDE. Zresztą z tego co obserwuję, ludzie nawet warningów nie czytają i wchodzą z założenia, że jak jest hex to jest ok. No nic, koniec narzekania :)
  • #12 10468916
    KRZAG
    Poziom 12  
    Arduino tworzy pliki hex które możesz wrzucić zwykłym programatorem,
    Niezależnie możesz też wrzucić swój plik hex
  • Pomocny post
    #13 11491881
    uzi18
    Poziom 24  
    Mozesz programowac nawet w C/C++ bezposrednio z Arduino IDE, a klikajac upload wyslesz program do plytki.
    Nikt Cie nie ogranicza do stosowania ulatwien z Arduino, ktore maja jednak spory narzut w porownaniu do bezposrednich operacji na rejestrach.
  • #14 11493621
    Lukasz_wat
    Poziom 10  
    Dzięki za odpowiedź! Fajnie, że temat ciągle się rozwija i mam nadzieję, że pomoże wielu osobom;)

    Pozdro
  • #15 11494132
    uzi18
    Poziom 24  
    Sam uzywam arduino duemilanove/uno/mega wlasnie w ten sposob, glownie
    dla bootloadera i dzieki temu szybkiego programowania przez rs232.

    Docelowo jednak traktuje ta platforme bardziej jako rozwojowa bo plytki itp. projektuje w zaleznosci od aplikacji po sprawdzeniu oczywiscie wersji rozwojowej ;)

    Gdyby ktos chcial to mam kilka oryginalnych (9) plytek Mega jeszcze zapakowanych do sprzedania (propozycje na priv)
    Mam tez kilka EthernetShield-ow z gniazdem karty SD.
  • #17 11496342
    blue_17
    Poziom 32  
    Jest taka wersja eclipse gdzie wskazuje się tylko arduino exe i piszę się w eclipse normalnie pod arduino :) osobiście myśl że ten mały edytor jest ok nawet bez autouzupełnania ale jak kodu rozrasta się to nawet po uporządkowaniu trochę nieporęcznie poruszać się w kodzie :)
    Ja uzywam do programowania USBasp

    Jeśli by ktoś chciał zrobić sobie sam arduino to zapraszam na moją www tam można pobrać pliki całość w wersji przewlekanej.

    Arduino to świetna zabawa, chociaż wolę szybsze i tańsze procesory :)
  • #18 11548554
    tomekccoolloo
    Poziom 11  
    Pytanko do was, istnieje coś takiego jak symulator(wirtualny emulator czy coś takiego) arduino ? aby bez kupowania go móc się pobawić w programie na diodkach czy coś innego????
  • #19 13817002
    Lukasz_wat
    Poziom 10  
    Wziąłem się za zestaw ATB Atnel..
    Myślę, że jednak wiadomości powyżej są bardzo pomocne:)

    Pozdrawiam
REKLAMA