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

Jaki język wybrać asembler czy C ?

wromich 15 Wrz 2008 23:39 6141 20
  • #1 5539333
    wromich
    Poziom 15  
    Witam, przepraszam, że poruszam tak już oblatany temat, ale nie mogłem znaleźć informacji mnie zadowalających w czym zacząć programować uC. A wiec chcę nauczyć się programować mikrokontrolery wybór padł na AVR mam już programator avr 500 i teraz pytanie czy zacząć programować w C czy może uczyć się asemblera. Język C trochę znam, nie wiem tylko czy ta wiedza przyda mi się do mikrokontrolerów, asemblera też miałem na studiach, ale w formie takiej bardzo podstawowej. Jaki język najlepszy jest dla początkującego w tej branży? Proszę o konkretne odpowiedzi, za programowanie chcę się wziąć już tak bardziej na poważnie ponieważ przyda mi się w przyszłości i teraz pytanie co jest bardziej przyszłościowym językiem czy asemblera nadal się będzie używać tak jak to było kiedyś czy już wchodzi się powoli w języki wysokiego poziomu dla uC ? Sorry, że tak dużo pytań ale to dla mnie ważne żeby dobrze wystartować z zabawą w uC :D Dzięki za odpiwiedzi :D
  • #2 5539374
    Freddie Chopin
    Specjalista - Mikrokontrolery
    jak poznasz assemblera, to wymiatasz. nie zadajesz potem na forum glupich pytan, bo sa to dal ciebie po prostu rzeczy oczywiste. potrafisz zoptymalizowac program jak trzeba, tak ze dziala 4x szybciej niz napisany bez znajomosci asm.

    asm na avy jest niestety malo 'ludzki' - o wiele lepszy jest w picach, a juz szczegolnie w picach 16-bitowych. kurde chyba nawet w ARMach jest prostszy [;

    anyway - naucz sie jednego i drugiego, lepiej najpierw zaczac od ASM, troche boli, ale jak zaczniesz odwrotnie, to juz ci sie nie bedzie chcialo [; takie jest moje zdanie, ja tak robie i nie narzekam.

    4\/3!!
  • #3 5539471
    wromich
    Poziom 15  
    czyli sugerujesz zmianę uC, żeby się na picach najpierw pobawić? czy startować od razu od avr?
  • #4 5539481
    Dr.Vee
    VIP Zasłużony dla elektroda
    Siłą rzeczy programowanie uC wiąże się ze znajomościa jego architektury - a stąd już niedaleko do jako-takiego wyobrażenia o asemblerze dla danego procesora. Nie musisz umieć pisać programów w asemblerze, wystarczy umiejętność "czytania" kodu asemblerowego. Oczywiście wyciśnięcie ostatnich potów z układu wymaga znajomości i architektury, i asemblera.

    Języki wysokiego poziomu to od dawna chleb powszedni programowania uC - z praktycznego punktu widzenia napisanie i przetestowanie linii kodu w asemblerze i w C zajmuje tyle samo czasu - ale w C jest mniej pisania, stąd większa produktywność.

    Ja bym zaczął od napisania jednego, dwóch programów w ASM, a później od razu przeszedł do C. Jeśli będziesz musiał, to wrócisz do ASM później.

    Aha - no i w C możesz pisać na wiele architektur, a ASM jest specyficzny dla każdej architektury uC.

    Pozdrawiam,
    Dr.Vee
  • #5 5539769
    Bigfoot
    Poziom 25  
    * Piszesz, ze chcesz nauczuc sie bardziej na poważnie . MUSISZ wiec znac i asemblera, i C.
    * Dla poczatkujacego oczywiscie latwiej zaczac od C.
    * Jest pomylka mowienie, ze C wypiera asemblera, ze jest bardziej przyszlosciowe - kompilator C tak naprawde kompiluje sam do asemblera wlasnie, potem w hexa to uklada...

    BF
  • #6 5539835
    Freddie Chopin
    Specjalista - Mikrokontrolery
    wromich napisał:
    czyli sugerujesz zmianę uC, żeby się na picach najpierw pobawić? czy startować od razu od avr?

    zrobisz jak uwazasz [; warto znac wiecej niz same AVRy, a 16-bitowe pice sa bardzo przyjemne i bardzo wydajne.

    4\/3!!
  • #7 5540020
    wromich
    Poziom 15  
    Jestem na studiach na automatyce więc chyba asembler będzie także przydatny. Ogólnie do zastosowań automatyki używa się asemblera czy pisze się w C żeby było łatwiej? Może głupie pytanie ale chce wiedzieć co jest i będzie przyszłościowe, żeby sobie głowy nie uczyć się od nowa czegoś nowego
  • #8 5540181
    Dr.Vee
    VIP Zasłużony dla elektroda
    Jak już pisałem - praktycznie każdy procesor i uC mają swoją odmianę asemblera. Jeśli wiesz, że będzisz pisał na AVR, to ucz się asemblera na AVR. Ale np. nauka asemblera x86 to pewnie przyda się tylko dla Twojej satysfakcji... :)

    Pozdrawiam,
    Dr.Vee
  • #9 5540418
    wromich
    Poziom 15  
    Pewnie będę miał 8051, stary procek więc myślałem bardziej na Atmedze albo Attiny duże są różnice pomiędzy 8051 a Atmega?
  • #10 5540601
    Bigfoot
    Poziom 25  
    Z tego co piszesz wynika, ze kazdy uC bedzie dla Ciebie dobry na poczatek - nie wiesz praktycznie nic o mikrokontrolerach wiec duzej roznicy nie bedzie. Zacznij od tego co masz pod reka. Poznaj standard 8051 - klasyke dziesiecioleci, caly czas zreszta zywy i aktualny, potem pobaw sie AVRem czy PICem. Sam zauwazysz ogromne roznice i bedziesz je sam czul. Teraz, jezeli Ci na przykad powiem o roznicach: wyborze banku rejestrow w PIC-u, wyborze kierunku portow w AVR albo adresowaniu posrednim w 8051 i tak pewnie za bardzo przydatne to dla Ciebie nie bedzie.
    Sklec plytke z uC + ewentualnie programator i pisz, pisz, pisz i jeszcze raz pisz programy!

    BF
  • #11 5540615
    Dr.Vee
    VIP Zasłużony dla elektroda
    Poza tym, że w jednym i drugim instrukcja zajmuje jedną linię i ma format "opkod argument1, argument2", to innych podobieństw jest niewiele - różne architektury, różne zestawy instrukcji, rejestry itd.

    Pozdrawiam,
    Dr.Vee
  • #12 5542297
    wromich
    Poziom 15  
    Ok, widzę że jednak chyba zacznę od 8051 żeby poznać strukturę mikroprocesora a potem przesiądę się na coś mocniejszego :D . Teraz mam pytanie co muszę mieć żeby zacząć programować te procki z rodziny '51 ? W co zainwestować ale żeby nie wyrzucić kasy w błoto a no i jeszcze jaka literatura?
    A no i mam oczywiście programator AVR STK 500 więc może lepiej pobawić się attiny lub atmegą na początek czy to skok na głęboką wodę na razie? Czy muszę mieć płytkę testową jest przydatna?
  • #13 5542423
    Dr.Vee
    VIP Zasłużony dla elektroda
    Nauki bez płytki testowej raczej sobie nie wyobrażam - jak będziesz testował programy?

    Jeśli chodzi o architekturę uC, to oczywiście lepiej znać więcej niż mniej ;) Tylko będziesz musiał zainwestować w nową literaturę, programator i płytkę uruchomieniową dla każdej nowej architektury.

    Pamiętam, że AVT miało płytkę pod AVR i '51 atmela jednocześnie - chyba był to zestaw AVT992. Jak dodasz do tego AVT1430, to możesz się bawić nowszymi procesorami (atmega8).

    Pozdrawiam,
    Dr.Vee
  • #15 5542982
    wromich
    Poziom 15  
    Po przeczytaniu FAQ normalnie zrobił mi się mętlik w głowie, każdy proponuje coś innego. Mam programator stk500 i chciałbym go wykorzystać do zabawy z uC tylko jaki procek wybrać na początek żeby dało się go zaprogramować za pomącą tego programatorka żeby na początek nie był za trudny no i oczywiście jaka płytka testowa? A może proponujecie złożenie oddzielnego programatora na rodzinkę '51 i zacząć się bawić z tymi procami?
  • #16 5543234
    snow
    Poziom 31  
    Pisz w tym w czym czujesz się na siłach. Jednoznacznej odpowiedzi nie ma. Jeden woli C, drugi asm a trzeci Basica czy pascala. Procek obojętne jaki, najlepiej jakiś w miare łatwo dostępny w pobliskim sklepie żeby nie czekać tydzień na dostawę albo i dłużej jak jakiś mocno nietypowy.
  • #17 5543456
    Bigfoot
    Poziom 25  
    Kolego wromich, niedlugo naprawde wyczerpie sie cierpliwosc odpowiadajacych na ten topic... Sklec w koncu jakas plytke startowa i zaprogramuj mrugajaca diodke. Jakikolwiek uC, najprostszy i najtanszy. Wszystkie odpowiedzi znajdziesz w wyszukiwarce, rowniez to jak to zrobic z stk500. Przestan zadawac pytania typu "ktory bedzie najlepszy na poczatek?". Dla Ciebie - kazdy. Kazdy bedzie podobnie trudny do opanowania. Pokaz, ze cos robisz i zadawaj pytania techniczne - dzialaj a nie teoretyzuj za duzo. Jak zrobisz 5 roznych plytek startowych na roznych prockach to sam sie najlepiej przeknasz ktory Ci odpowiada najbadziej. ODPOWIEDZ NA PYTANIE JAKI uC UZYC BRZMI DLA CIEBIE: JAKIKOLWIEK.

    BF
  • #18 5543791
    wromich
    Poziom 15  
    Chyba na początek zdecyduję się na atiiny 2313 ponieważ mam programator procek nie jest drogi dość prosty i powszechnie stosowany z tego co przynajmniej wyczytałem :D . Znalazłem na takiej stronie : http://mirley.firlej.org/plytka_at89cx051_attiny2313 płytkę testową do tego procka co o niej szanowni koledzy uważacie? Warto ją robić czy lepiej zainwestować w coś co obsługuję więcej procesorów niż tylko te (jeżeli coś takiego jest) ? Dzięki za odpowiedzi wszystkie są bardzo przydatne :D
  • #19 5543834
    Freddie Chopin
    Specjalista - Mikrokontrolery
    czy zaczniesz w koncu pytac w tematach przyklejonych? pytasz o to, jaka plytke zrobic w watku, ktorego temat brzmi "Jaki język wybrać asembler czy C ?"... czy widzisz w tym cos niewlasciwego?

    4\/3!!
  • #20 5543836
    snow
    Poziom 31  
    Poczytaj te przyklejone tematy - nikomu się nie chce po raz 1000000000000 odpowiadać na takie posty. Ogólnie zacznij od atmega8 jak chcesz AVR'y bo ma np. ADC
  • #21 5543874
    zumek
    Poziom 39  
    snow napisał:
    Poczytaj te przyklejone tematy - nikomu się nie chce po raz 1000000000000 odpowiadać na takie posty...


    I tym zdaniem z cytatu , temat zamykam.
REKLAMA