Ads_700x200

tme

środa, 4 maja 2011

Od czego zacząć zabawę: AVR, PIC, 8051, ARM ?

Wybór rodziny mikrokontrolerów w dzisiejszych czasach powoduje zawrót głowy nie tylko dla hobbystów wkraczających dopiero w ten świat ale nawet dla profesjonalistów. Spowodowane jest to ogromną ilością rozwiązań, różnych firm oraz rodzajami architektury samych mikrokontrolerów.

Wychodząc na przeciw temu pragnę zwrócić uwagę na, być może niepozorną rodzinę, niewielkich bo 8-bitowych, ale za to bardzo wydajnych mikrokontrolerów serii AVR firmy Atmel.

Dlaczego właśnie AVR a nie np.: PIC, 8051, ARM itp ?

  • Najniższe koszty związane rozpoczęciem nauki
  • Największe możliwości zdobycia lub wykonania własnoręcznie programatorów sprzętowych.
  • Programowanie większości mikrokontrolerów z całej rodziny za pomocą tego samego typu programatora sprzętowego ISP (In System Programming - programowanie bezpośrednio w układzie)Tylko jedno napięcie zasilania podczas programowania (+5V lub np +3,3V)
  • Pełne i darmowe środowiska programistyczne oraz kompilatory.
  • Olbrzymie ilości materiałów informacyjnych oraz przykładowych w internecie i nie tylko.

Gdy nauczysz się programować AVR w języku C, nic nie stanie na przeszkodzie aby w następnym kroku szybko przejść na PIC, ARM i inne ...

Wielu ludzi myli pojęcie "programowanie" z nauką obsługi wybranej rodziny mikrokontrolerów w jakimś tam języku. Obsługi można się szybko nauczyć tym bardziej, że wszędzie jest pełno informacji na temat podstaw włącznie z fragmentami kodów programów bezpośrednio w notach PDF producentów.

Za to nauczyć się podstaw programowania to już nie to samo i nie tak łatwo. Cóż więc z tego, że ktoś super początkujący rzuci się od razu na ARM czy inny 32-bitowy procesor ? Ale za to praktycznie nie znajdzie żadnych porządnych materiałów np w języku polskim, które pozwolą mu szybko zacząć?

Tymczasem nauka języka C w obecnym czasie, gdy na rynku w Polsce pojawiła się książka pt:
"Mikrokontrolery AVR Język C Podstawy programowania", stała się trywialnie prosta. Wiedzę w niej przekazaną można swobodnie stosować później do dowolnej rodziny mikrokontrolerów. A jest ona o tyle ważna, że pokazuje naukę języka C w aspekcie mikrokontrolerów a nie w aspekcie komputerów PC. Bo jednak trudno zacząć programowanie mikrokontrolerów ucząc się języka C tylko na podstawie książek do C przeznaczonych dla PC i to bez dwóch zdań. Tym bardziej gdy ktoś zaczyna od początku.

Dlatego przygotowałem poradnik VIDEO jak można zacząć najtaniej tą przygodę - kliknij i sprawdź sam:





    28 komentarzy:

    1. Jestem jak najbardziej za.
      Próbując nauczyć się programowania do ręki wziąłem PIC 16f87 i lipa. Potem wpadła mi Atmega8 i Bascom i jakoś poszło.
      Materiały też ważna rzecz. Znalazłem o niebo lżejsze ( nie o wadze mowa ) książki do AVR niż do PIC. A reszta rzecz gustu a o tym się nie dyskutuje.

      OdpowiedzUsuń
    2. A ja sie całkowicie nie zgadzam z takim obiektywizmem, PIC tez dysponuje bogata literaturą , darmowymi środowiskami programistycznymi dal ASM , C, C++ i BASIC. kwestia wsporną jest tez taniość AVR, których tych najpopularniejszych ceny osiągają obecnie niebotyczne wielkości. Nie nie chcę tu broń boże wciskac PIC-a , ale jest naprawdę tanią alternatywą AVR, Programator PICKIT jest bardzo wydajny , a klon wyjątkowo prosty do wykonania , i czesto się okazuje że PIC-e są stabilniejsze od AVR , choc osobiście popieram inną drogę miast marnować czas na Bascom i złe nawyki z nim zwiazane. Warto zacząć od C na nie ważne czym czy to będzie ARM, AVR, PIC32 czy też MSP430 :)
      ostatnio zainteresowałem się platformą ARDUINO przyjemnie się programuje a na stronce o sunduino jest nawet możliwość pisania w ten sam sposób programu na PIC-e. dlatego w dzisiejszych czasach warto mieć otwarte oczy bo konkurencja nie śpi i procesorów jest wiele wiec lepiej umiec pracować na kilku róznych niz z klapkami na 1 rodzinie bazować.

      OdpowiedzUsuń
    3. Wymień mi jedno w pełni darmowe środowisko do programowania PIC'ów w języku C

      Powiedz ile kosztuje PICKIT i porównaj jego cenę do USBASP albo STK200 albo do "AVR SIMPLE PROGRAMMER" składającego się z 4 rezystorów.

      Co to znaczy wydajność Programatora PICKIT ???

      Wymień wreszcie jedną porządną książkę w języku polskim do języka C dla mikrokontrolerów PIC!

      W ogóle nie będę polemizował na temat stabilności jednej rodziny w stosunku do drugiej bo to bez sensu.

      I kto mówi o bazowaniu na jednej rodzinie ??? Proponuję przeczytać to co napisałem wyżej ze zrozumieniem a nie zachłystywać się mnogością procesorów i rozwiązań bo z dnia na dzień będzie ich coraz więcej. Jeśli chcesz powiedzieć, że poznałeś już wszystkie to chyba nie do końca wiesz co mówisz niestety :(

      Zgadzam się natomiast co do tego, że warto uczyć się języka C jeśli ktoś startuje niż Bascoma czy Basica.

      A jak chcesz dobrze nauczyć się programować mikrokontrolery i to obojętnie jakie (bo każde są dobre) to skup się na nauce programowania a nie nauce sterowania pinami i modułami procesora za pomocą niektórych komend jakiegoś języka - nawet gdyby to miał być C.

      I tylko z tego powodu, że amator może najtaniej i prawie bez kosztów zacząć akurat od AVR to tylko dlatego polecam żeby od tej rodziny zacząć a nie żeby na niej poprzestać. Jeszcze raz powtórzę - trzeba czytać ze zrozumieniem.

      OdpowiedzUsuń
    4. No skoro się upierasz to prosze bardzo MPLAB z kompilatorem C18, Pickitem mozna zaprogramowac każdy procek z Microchipa łacznie z PIC32 i dsPIC, zdebugowac , moze pracowac jako przejściowka USB RS232 i analizator stanów logicznych, a nawet zprogramować AVR-ki, z książkami jest gożej to prawda , ale jest masa materiałow w sieci wystarczy wygooglać.

      OdpowiedzUsuń
    5. Wcale się nie upieram, jednak po pierwsze nie odpowiedziałeś już na porównanie cen PICKIT'a a USBASP czy STK200 dla AVRów.


      Po drugie panie szanowny kolego, nie upieram się tylko pytam z ciekawości. Natomiast chciałbym delikatnie zwrócić uwagę, że kolega coś nie do końca sprawdzone informacje przekazuje, ponieważ wspomniany wyżej MPLAB wraz z kompilatorem C18 WCALE NIE JEST ZA DARMO :( ... warto poczytać sobie dokładniej:

      http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014

      No chyba, że kolega miał na myśli specjalną wersję akademicką - ale to już nie to samo - bo to wersja LITE....

      Zatem przypominam jeszcze raz, nie mam NIC A NIC przeciwko procesorm PIC bo są równie fajne jak każde inne, ale ja dokładnie hmmm bardzo dokładnie sprawdziłem to o czym pisałem na blogu i co polecam początkującym.

      Na koniec podpowiem jeszcze, że z owej "masy materiałów w sieci" wcale początkujący nie nauczy się łatwo i szybko programowania w języku C niestety. Tzn podkreślam - nie szybko - a nie mówię, że w ogóle.

      Zatem to kolejny przykład, że to co pisałem jest obiektywne ale oczywiście każdy może się z tym nie zgadzać, tyle że jak już przytaczać argumenty "przeciw" to konkretne i prawdziwe. Bo kompilator C18 jest w pełni płatny. A cennik masz panie kolego tutaj:

      http://www.microchipdirect.com/ProductSearch.aspx?Keywords=SW006011

      więc sam zobacz, że jakaś tam byle podstawowa wersja kosztuje już od: 495$ !!!! a najbogatsza 1.999$ !!!!!!!!

      więc o czym my tu mówimy ???

      a spróbuj zobaczyć ile kosztuje kompilator AVR GCC - uwaga równo 0zł !!!!!

      więc bardzo proszę ;) o rozwagę przy argumentacji ok?

      OdpowiedzUsuń
    6. Ojoj szkoda że się nie podpisał bo bym chetnie sobie z nim pogadał na temat PIC bo juz ładne parę latek w nich siedzę, I jedyne co znalazłem darmowe z kompilatorów na PIC to Assembler dołaczony do MPLab -swoja drogą strasznie paskudny.. PIC-Kit nie jest tani fakt ma sporo dodatkowych funkcji panie Anonimowy , a klona PK2 Można zbudować w cenie usbASP , ale bedzie obsługiwał on tylko procesory 5V wiec sie zastanów bo przetwornica do programowania PIC to nie zabawka , trzeba wprowadzać odpowiednie napiecia na piny czesto w trybie HL siegające 11-12,5V - w orginale jest sterowanie napieciem z programu PK , ale podłaczenie klona do PIC 3,3V lub niżej już może go uszkodzić , niepodłączenie zasilania z programatora jest dopuszczalne , ale w wielu przypadkach uniemożliwia zaprogramowanie procesora z powodu nie wykrycia zasilania IC przez programator. Analizator stanów nie działa prawidłowo z każdym klonem PK. wiec tu sie zastanów kolego Anonimowy zanim coś napiszesz zwłaszcza jak coś źle wyczytasz/nie doczytasz. Ja robie wiele projektów na prockach MC zwłaszcza lubie rodzinę 18F i PIC32MX, ale dla początkujących zdecydowanie AVR , może nie jest obecnie najtańszy , ale ma wiele zalet głównie gdy chodzi o api i darmowe kompilatory, które głównie są używane przez ludzi młodych/ niepracujących. Przemyśl to kolego , chwali sie ze łyknoles PIC-a, ale to nie jedyny procek na świecie - wspomniałeś o MSP430 robiłeś co na tych 16bitówkach ?? Bo ja tak i też kolorowo nie jest do MSP430G2231 dostaniesz za free CCS4 z kompilatorem i ograniczeniem do 16Kb, no starczy bo ten procek ma tylko 2K flash co styknie do świecenia diody - z twoich wypowiedzi wynika ze poza zapalaniem LED-a nic więcej nie robiłeś - więc jak niewiesz o czym piszesz niepisz wcale - skoro nawet nie masz odwagi sie podpisać pod swoim postem. Mirek zadaje sobie sporo trudu by przekazać wiedzę i ułatwić, początkującym i napewno nic nie narzuca nikomu. Chcesz pisac na ARMY , a pisz sobie w czym chcesz choćby w Atolicu, IAR-ze, CrossStudio czy RiDE7 ale pamietaj żaden z nich nie jest za free, a wersje free na wiele nie pozwalają. Jest OpenOCD darmowy , ale niewydaje mi się żebyś kolego umiał sobie poradzic z eclipse i tym toolchainem nie mówiąć o debugerze zresztą też dosyć kosztownym.

      OdpowiedzUsuń
    7. Kurcze Mirek pwiedz skąd Ty bierzesz takie obrazki układow jak powyżej? Albo jak robisz cos takiego?
      Od jakiegoś czasu szukam czegos podebnego tylko uniwersalnego tzn. bez nazwy rodziny, a Ty co chwile wysypujesz coś fajnego.

      OdpowiedzUsuń
    8. Tymi obrazkami to już się zajmuje nasza Pani grafik ;)

      http://www.karograph.blogspot.com/

      OdpowiedzUsuń
    9. Dlaczego PIC? Dlatego że gdy chcesz zaimplementować zmienny kod KEELOQ to jedynym rozwiązaniem jest procesor Microchipa lub zewnętrzny dekoder. Inaczej łamiesz licencję.
      Programator? Poszukaj JDM2 jezeli chcesz prosty i tani, poza tym PicKit2 kosztuje około 110 zł netto więc to chyba niedrogo za programator i analizator stanów logicznych.

      OdpowiedzUsuń
    10. witam
      jestem kompletnie początkujący w elektronice więc proszę o pomoc o ile temat jeszcze jest aktualny :)
      chciałbym zacząć programować proste układy a w przyszłości np wyświetlacz widmowy (wiem że jest na podobnych układach)
      proszę o pomoc w wyborze/wskazania modelu od którego warto zacząć
      z góry dziękuję za pomoc
      i jeszcze jakie macie opnie na temat arduino ?

      OdpowiedzUsuń
      Odpowiedzi
      1. Tak na prawdę zacząć można od dowolnego procesora z wymienionych w tym rozdziale a nawet z tych których nie wymieniłem. Jeśli jest się początkującym szczególnie w zakresie elektroniki to na pewno od razu z marszu odpadają wg mnie bardziej zaawansowane procesory jak ARM. A spokojnie wskazane cele można zrealizować na 8-bitowcach jak np AVR

        Ważniejsze jest skąd można czerpać wiedzę na temat programowania - jeśli masz ochotę to spróbuj zacząć - zanim jeszcze kupisz jakikolwiek procek od poczytania książki o której jest mowa tutaj:

        http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

        Usuń
    11. c18 dla PICa pod linuxem daje max optymalizację, taka jak c18 pod windowsa z otymalizacja -s, a darmowy jest tylko do otymalizacji -1. Nie wiem czy to bug czy jakis uklon w strone linuxowców.

      OdpowiedzUsuń
    12. Witam
      Wykonuję prace inżynierską mikroprocesorowy sterownik silnika BLDC (Ud=48 Imax = 150A) jest już na ukończeniu. Sterowanie miało być na module ZlAVR7 na Atmedze128 ale teraz zrobiłem własny moduł o na goldpinach na Atmedze 1280 TQFP100 płytka wykonana domową metodą wyszła super:) Wiele wiedzy o AVR pozyskałem z tego bloga, forum oraz niebieskiej książki co bardzo mi to pomogło dziękuję za to Panu Mirkowi. I mam pytanie czy będą jakieś tematy o ATXmegach ? Słyszałem o wielu ich pozytywach i możliwościach szczególnie sprzętowych fajnie było by się nauczyć teraz kolejnej rodziny Atmela ;)

      OdpowiedzUsuń
      Odpowiedzi
      1. Dziękuję za ciepłe słowa ;)

        Jeśli chodzi jednak o pytanie odnośnie np procesorów ATxmega lub podobnych.

        Nie wiem do końca dlaczego wiele osób kojarzy to co robię, to co piszę - tak jakbym ja pisał o jakichś mikrokontrolerach.

        Stanowczo się odcinam od takiego zaszufladkowania ;) i doprecyzowuję. Ja nie piszę o mikrokontrolerach - moim celem jest próba, podjęcie się nauki programowania mikrokontrolerów (obojętnie jakich) w języku C. Proszę zwrócić uwagę na charakter książki albo książek.

        To że akurat omawiam to wszystko na przykładzie mikrokontrolerów AVR wynika TYLKO z tego że:

        1. wg mnie KAŻDY ma je w zasięgu ręki
        2. dostępne są darmowe narzędzia do ich programowania
        3. sam je akurat lubię
        4. uważam że można na nich uczyć się tak samo języka C jak na każdym innym procku dowolnej rodziny

        nie dyskredytuję przez to innych procesorów, ale też nie jestem w stanie opisywać C tworzą przykłady na wszystkich naraz bo to wręcz niedorzeczność by była ;)

        Czymże różni się pisanie programów w C na AVR, Xmega, ARM, PIC, 8051 i inne ??? no czym ? ;)

        TYLKO jednym - może dwoma/trzema rzeczami:

        1. środowiskiem programistycznym
        2. programatorem
        3. PDF - em który trzeba przeczytać żeby mieć dostęp do jego sprzętu

        natomiast pętla for(), while() i inne elementy języka pozostaną wszędzie te same.....

        Dla mnie ważniejsze jest przekazanie wiedzy na temat dalszych etapów programowania - TIMERY PROGRAMOWE, ZDARZENIA, EVENTSY, CALLBACKI itp ....

        bo co z tego że napiszę o Xmega ... ? no co ?

        co z tego że teraz napiszę o ARM ??? ;)

        Skoro bez wiedzy programistycznej - osoba, która nie potrafi z wyżej wspomnianych technik korzystać - zaraz pójdzie po system operacyjny typu LINUX czy inny RTOS ... po to żeby jednocześnie wykonywać kilka zadań.

        Dlatego nie ;) proszę mnie nie kojarzyć z kimś kto opisuje mikrokontrolery - do tego są pozycje innych autorów .... ja zajmuję się nauką programowania w C łącznie z etapem tych bardziej zaawansowanych technik. To jest mój CEL ok? ;)

        Usuń
    13. Co autor sądzi o STM32? Płytki Discovery z wbudowanym programatorem można dostać za nieduże pieniądze.

      OdpowiedzUsuń
      Odpowiedzi
      1. Czasem nawet za przysłowiową złotówkę albo jako gratis do książek w wydawnictwie BTC jak ostatnio było. Super sprawa ...

        W ogóle co za kłopot używać jakiegokolwiek procesora jak już się zna programowanie ? ;)

        to o czym ja piszę - to o rozpoczynaniu nauki języka C dla mikroklocków i tylko z tej perspektywy polecam 8-bitowce a szczególnie AVR'y ....

        a nie żebym miał jakiegoś focha na inne rodziny procesorów.

        Usuń
      2. Panuje opinia, że ARMy są trudniejsze od AVRów, zwłaszcza dla początkujących, i ciekaw jestem na czym ta owa trudność polega

        Usuń
      3. Ja bynajmniej nie znam takiej opinii - a co za różnica jaki procesor ? ... jeśli masz chęć, masz PDF'y , masz dobrą literaturę to bardzo szybko nauczysz się DOWOLNYCH procków - tylko poszukaj książek o prockach - bo ja takich nigdy nie pisałem i nie piszę ....

        A powiem więcej można nawet bez żadnej literatury, można się uczyć zaczynając tylko od PDF'ów i dokumentacji od jakiegoś wybranego kompilatora czy programatora ... pewnie wyjdzie dłużej ale WYJDZIE, trzeba tylko chcieć....

        Mało osób za to rozumie, albo nie chce zrozumieć tego - że mi łatwiej wyjaśnić początkującym naukę programowania w C właśnie na 8-bitowce. Poza tym wszystko do nich jest darmowe jak kompilator, środowisko itp ...

        Usuń
    14. Ja bym z miłą chęcią zakupił książke napisaną przez mirka dotyczącą mikrokontrolerów stm32 gdyż wierzę że byłaby bardzo dobrze napisana i zrozumiana przeze mnie :-)

      OdpowiedzUsuń
    15. Jeżeli chodzi o wsparcie w języku polskim to AVR ma zdecydowanie większe niż Microchip, natomiast ja z pewnych względów zacząłem od PICów. Kiedyś przymierzałem się do kupna Atmegi ale zabrakło czasu na zabawę z prockami, a trafiło mi się w ręce kilka procków z serii PIC16Fxxx.

      Nawet na małym procku z flashem 2k słów (np. PIC16F684) można bez problemu zrobić termometr cyfrowy, 4 a nawet 6 temperatur na jednej linii 1-Wire (DS18B20), druga linia 1-Wire do dodawania czujników, wyświetlacz LCD 2x16 lub 4x16, 2 przyciski do programowania i jeszcze zostaje jeden wolny pin (po wyłączeniu MCLR nawet dwa) i tyle miejsca na procku, że można dorzucić np. woltomierz cyfrowy.

      W przypadku języka C nie ma znaczenia, który procesor (PIC czy AVR) jest lepszy do nauki (obydwa będą tak samo działały), natomiast w przypadku asemblera uważam, że PICe z 35 instrukcjami są bardzo proste.

      Koszt elementów do prostego klona Pickit2 to ok 15zł, a JDM'a da radę zrobić za mniej niż 1zł (tylko czasem są błędy w programowaniu).

      U mnie PIC'e zostały ze względu na ich posiadaną ilość (ATTINY13 ok 2szt., PIC16F6xx ok 50szt.)

      OdpowiedzUsuń
      Odpowiedzi
      1. PIC'e --> to płatny kompilator C ... , to źle działające klony programatorów jak sam piszesz itp itd

        AVR'y ---> to DARMOWY kompilator C, to działające dowolne klony programatorów, Ba! ... wystarczą CZTERY rezystory podpięte do LPT ...

        dlatego z AVR'ami jest szybciej, taniej i dla każdego .... (przez co wcale nie chcę powiedzieć że jedne są lepsze od drugich bo to byłaby bzdura)

        a jak się ma pieniądze, dużo pieniędzy (chodzi o amatorską kieszeń) to tak jak mówisz - nie ma różnic ....

        Usuń
      2. W naszym kraju panuje taka opinia, że procek to atmega i praktycznie każdy się tego trzyma. Osobiście nie spotkałem nikogo kto zapytany o procka powiedział by coś innego jak AVR.

        Nigdzie nie napisałem, że klon Pickita źle działa, a jedynie z JDM mogą być problemy ale to już raczej wina przejściówki USB-RS232 niż samego programatora.

        Nie wiem tylko co to znaczy "dużo pieniędzy" bo ja jak na razie na zabawę z PIC'ami wydałem całe 10zł (koszt klona PK2), a ceny prostych PIC'ów zaczynają się od ok. 5zł.

        Na PIC'e też są darmowe wersje kompilatorów C, chociaż ja z pewnych względów zacząłem zabawę z asemblerem (kiedyś wydawał mi się straszny jednak jak na razie ma dla mnie więcej zalet jak wad) ale do napisania czegoś bardziej ambitnego jak termometr to jednak w C było by zdecydowanie mniej pracy.

        Gdyby w moje ręce wpadło kilka atmeli to na pewno bym się ich nie pozbył tylko zaczął i na nie coś tworzyć, ale jak na razie spodobało mi się 1-Wire, LCD i wykorzystanie ADC na PIC'ach :)

        Usuń
      3. Kompilator C - płatny ... rozumie kolega ? ... płatny kompilator C ... czy jeszcze mam coś mówić ?

        Więc jeśli się całkowity amator ma zabrać za próbę nauki to wybierze to co jest za free żeby się przekonać czy w ogóle programowanie jest dla niego ...

        a to że akurat ty zacząłeś z asemblerem, to że akurat ty wydałeś 10zł bo znasz się i umiesz sobie sam zrobić programator ... bo to , bo siamto ... bo niby w naszym kraju panuje jakaś rzekoma opinia ;) ...

        świadczy tylko i wyłącznie o ty, że patrzysz tak troszeczkę przynajmniej przez czubek własnego nosa ...

        Usuń
      4. oczywiście jeszcze raz dodam - ANI PRZEZ CHWILĘ nie mówię ani nie sugeruję że AVR'ki są lepsze od PICów albo odwrotnie - to dokładnie nadal 8-bitowce i każde z nich są fajne ... i dobre ....

        Usuń
    16. Jeśli mogę wtrącić się do dyskusji jestem automatykiem w FORTE to taka firma meblarska właściciele Niemcy dwóch takich kolesi ale to nie istotne, Chciał bym prosić panie Mirku o ile to możliwe aby właśnie skupić się na pic-ach ponieważ atmegi prawie w ogóle nie znalazłem w urządzeniach przemysłowych, sterownikach, panelach od falowników, wyświetlaczach, nie wiem dlaczego może to u nas w firmie tak jest znalazłem jedną atmegę128 bodaj że w takim małym ustrojstwie to chyba był rejestrator rozmów jakiś komunikator od centralki alarmowej. mam jeszcze takie pytanie dlaczego np siemens nie stosuje atmela tylko pic?

      OdpowiedzUsuń
      Odpowiedzi
      1. A powiedz mi co za różnica czy AVR czy PIC czy ARM czy STM czy 8051 jak chodzi o początki nauki programowania mikrokontrolerów ?

        zadałeś sobie to pytanie ? ;)

        ja nie uczę mikrokontrolerów ja uczę programować w C a to jest spora różnica, to jedno

        a drugie - to nie ma nic wspólnego z tym czy ty możesz znaleźć gdzieś AVR w urządzeniach czy nie - może nie trafiasz ? albo źle szukasz ;) ... Tak samo jak nie ma to nic wspólnego dlaczego Siemens stosuje PIC ? ;) ja nie wiem ... zapytaj Siemensa ....

        Są też firmy które stosują tylko ARM jak chociażby producenci telefonów komórkowych - jak myślisz dlaczego ?

        Mam nadzieję, że tych kilka dodatkowych pytań pozwoli ci na dobre przemyślenie o czym mowa w tym artykule ok ?

        Pozdrawiam

        Usuń
    17. Temat może i dość stary, ale pozwolę sobie na krótki komentarz.

      Pan Mirek ma oczywiście racje twierdząc, że chipy AVR są najkorzystniejsze dla początkujących, trudno polemizować z argumentami które przytoczył na początku artykułu. Jednak AVR maja także pewne mankamenty, nie doskwierające początkującym podczas nauki, ba nawet można je uznać za plus na samym początku, bo dzięki temu są łatwiejsze do opanowania. Mianowicie chodzi o względnie ubogie peryferia, brak tu specjalizowanych układów które przydają się później w komercyjnych projektach. Jest to dość istotną wadą, aczkolwiek jeśli opanuje się peryferia w AVR to wszystkie inne bardziej skomplikowane układy przez analogię będzie się programowało podobnie.
      Nie twierdzę, że AVR są z tego powodu złe i ogólnie "be" mają wydajny rdzeń (duży plus) ale czasem zwyczajnie brakuje kilku dodatków by znacząco przyśpieszyć wykonywanie zadania.

      Dlatego jestem zdania, że naukę programowania mikrokontrolerów najkorzystniej zacząć od AVR tak jak powiedział Pan Mirek. Jednak jak już się opanuje podstawy i okaże się, że jest to interesująca nas dziedzina warto poszerzać horyzonty też o inne chipy. Często okazuje się, że zamiast pisać dość długi program można uruchomić układ peryferialny i uśpić uC do czasu wykonania zadania (przerwania).

      Paweł.

      OdpowiedzUsuń
    18. Jarosław Sakowski7 marca 2016 10:37

      Witam,

      Programu w ASM który testuje 4 znakowy wyświetlacz LED na nieznanej
      (tyle że uruchomiony, tak powiedzmy) architekturze i sprzęcie jako
      początkujący od zera w nowoczesnych ośmiobitowych nie napiszesz, nie
      skompilujesz i nie wyślesz do sterownika w niedzielny wieczór. W
      życiu. Nawet jeżeli mój 'program' w C jest do miażdżącej krytyki to
      działa :) Ot tak. Na z80 asm to ja się męczyłem i to na sprzętowym
      debuggerze dniami. Zaczynałem sterowniki od 8 bitów i Mik Gardynika
      (nie zajmuje się obecnie projektem, może i dobrze chociaż książki o
      elektronice są fajne i częściowo nadal aktualne) to coś o tym wiem. C
      jest w miarę jednakowe na wszystkie procki i poza światem 8 bitów też
      ("w miare" w sensie definicji, sterowania kompilacją, bibliotek
      dodatkowych itp). Można też kod wygodnie wygodnie debugować programowo
      (przed wgraniem i testami sprzętowymi). Środowisko AVR jest darmowe,
      dostępne w źródłach i działa przynajmniej na większości Linuxów (nie
      wszyscy maja w domu M$ system bo po co) a to ważne. Wszystko masz tu
      za darmo, kompilatory, narzędzia, programatory, OS na komputery
      macierzyste, skład tekstu, rysowanie schematów (od prostego xfiga do
      Geda/etc), drukarki, internet. Nawet trasowanie płytek jak się
      sprężyć. I eclipse jak ktoś lubi na dokładke.

      Czego chcieć więcej? Profesjonalny projekt na tym pójdzie.

      C trzeba się uczyć, ja widzę już jakie mam braki w aspekcie cross
      kompilacji szczególnie. Co będzie w książkach zobaczę przyjdzie paczka
      i poczytam. Ważne żeby nie zaczynać np. od zestawu 'podręczników' ATV
      korporacja, nie dość że toto w pdf po pare kartek tylko tylko to pisał
      to gościu który się chwali że coś umie a początkujący to
      żuczek. Porażka.

      ASM jest specyficzny, ściśle związany z konkretnym procesorem
      (popatrzcie sobie na deklaracje *.h chociażby w rodzinie AVR) do tego
      dochodzą biblioteki, jakieś makra kompilatora itp. Nie porównujmy do
      języka przenośnego (po to zresztą C powstał) do ASM bo to bez sensu.
      A jak ktoś chce popatrzyć / poprawić / tworzy/c kod ASM to przecież
      może w AVR-gcc też.

      Z poważaniem,
      JS

      OdpowiedzUsuń