Ogłoszenie

Collapse
No announcement yet.

Początek zabawy z programowaniem uC

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    Początek zabawy z programowaniem uC

    Witam
    Na IV semestrze zaczyna mi się przedmiot - Technika mikroprocesorowa, po rozmowie ze starszymi rocznikami na tych zajęciach będziemy uczyli się programować uC.
    Osoby które nie miały z nimi wcześniej do czynienia (czyli ja) mają problemy z zaliczeniem laborek.
    Jako, że znajomość programowania nie pójdzie w przyszłości na marne to chcę samemu zacząć uczyć się programować.
    Co potrzebuję do programowania?
    Na dobrą sprawę wystarczy programator (koniecznie pod USB), podstawka pod uC, oczywiście język w którym napisze się program (troche się bawiłem w Bascomie, z kumplem zrobiliśmy sterowanie PWM silnika DC) i "kompilator", który przetłumaczy program na język niskiego poziomu.
    Na alledrogo znalazłem chyba ciekawą ofertę http://www.allegro.pl/item917899570_...scom_prog.html

    W skład zestawu wchodzi programator, wyświetlacz, płytka testowa z 3 wyjściami + przykładowe programy, poradniki itp.

    Co myślicie o takim zestawie? Chciałbym nauczyć się programować nie tylko żeby nie czuć się "głupim" na zajęciach, ale też nauczyć się czegoś dla siebie.

    Na forum jest kilka osób które z programowaniem są za pan brat, liczę na porady jak się "wkręcić" w programowanie mikro kontrolerów.
    Pozdrawiam

    #2
    Ja na Twoim miejscu olałbym płytki na ATmegach 8 i poszedł w większą rodzinę ATmega 16/32/644

    Ta płytka co podałeś jest dość słaba...żeby nie powiedzieć, że bardzo słaba.
    Ja posiadam ZL3AVR ale ta jest droga. Za ok 150zł można kupić coś takiego http://www.tme.eu/html/PL/zestawy-ur..._PL_pelny.html i to jest już fajny zestaw. Plusem płytki startowej jest szybki start (jak sama nazwa mówi) oraz pełna konfigurowalność. Minusem jest to, że nie łączysz sprzętu więc nie nabierasz wprawy w projektowaniu urządzeń mikroprocesorowych.

    Programator proponuje taki: http://www.allegro.pl/item917721146_...najtaniej.html
    Mam podobny, działa na Viscie i na 7 bez problemu. Konfiguruje się tylko makefile projektu.

    Co do języka to raczej nie skupiałbym się na Bascomie, lecz poszedł w C, czyli pakiet WinAVR. No chyba, że chcesz assemblera, wtedy najbardziej panuje się nad zasobami mikrokontrolera a dobrze napisane programy są najbardziej wydajne.
    Link do WinAVR
    http://sourceforge.net/projects/winavr/files/
    (w zestawie jest Programers Notepad, z którego wprost można skompilować projekt i wgrać go po ISP)

    Jak już zaczynasz to warto poczytać o fusebitach, tutaj masz świetną stronę do ich wyliczania: http://www.engbedded.com/fusecalc/

    Warto też zaznajomić się z książką http://www.lideria.pl/sklep/opis?nr=34286
    jest dostępna na sieci w PDF'ie. Świetnie pomaga zrozumieć sprzęt zaszyty w mikrontrolerze, opisuje rejestry konfigurujące dla danych peryferiów a także ma przykłady w C (niestety niektóre używane makra są już nie aktualne, WinAVR dość mocno ewoluuje).

    Ja generalnie zaczynałem od programatora, płytki stykowej i heja...ale co się namęczyłem czasami to moje...przez to wiele się nauczyłem.

    Mogę jeszcze dodać, że bez studiowania datasheetow się nie obejdzie. Poza tym internet i strony AVR Freaks oraz http://winavr.scienceprog.com/avr-gcc-tutorial/ i http://winavr.scienceprog.com/example-avr-projects/

    Na początek chyba wystarczy...

    Projekt, który robiłem dla mojej Panny na ten sam przedmiot na PŁ:
    http://strefa51.net/diy/widmowy_diyaudio.jpg
    http://strefa51.net/diy/projekt_sprawko.doc

    Pozdro

    [ Dodano: 2010-02-21, 21:28 ]
    dodam jeszcze dwie fajne stronki:
    http://www.hobby.abxyz.bplaced.net/i...hp?pid=4&cid=1
    http://avr.elektroda.eu/?q=node/8
    Asustor AS-5002T z MPD + konwerter USB .3lite + DAC PCM1704 by olog + autorskie PRE z PVC + Monobloki Ravlus Amplifilo + kolumny Tatami Audio Hudba

    Skomentuj


      #3
      Na początek płytka stykowa + jakiś mały procesor ( polecam sklep LISPOL na allegro, tanio i wszytko kupisz). Ale to plątanina kabli, ale umiejętność łączenia i układania elementów też się nabywa. Potem sobie coś wytrawisz.

      Bascoma sobie odpuść na rzecz C. Ja tam nie jestem jakimś dobry programistą i muszę nieraz długo posiedzieć ale C to uniwersalny język i umiejętności pisania programów zaowocują może na innych frontach.

      No i kolega LuSzTi podał 2 najlepsze stronki polskie z Tutorialami do nauki.

      Skomentuj


        #4
        Zamieszczone przez LuSzTi
        Ja generalnie zaczynałem od programatora, płytki stykowej i heja...ale co się namęczyłem czasami to moje...przez to wiele się nauczyłem.
        To wydaje się dobrą opcją na początek, jak coś popsuję to nie narobię dużych szkód

        Bascom jest dość prosty ale niestety zajmuje dużo pamięci, ale faktycznie C jest chyba najbardziej uniwersalny (w C++ trochę programowałem na I semestrze i nawet coś tam wychodziło).
        W Assemblera raczej nie chcę się pchać, bo ze mnie informatyk jak z koziej d**y trąba

        Co do programatora to ma śmigać pod Win7 x86 na laptopie, czyli http://www.allegro.pl/item917721146_...najtaniej.html powinno spełnić moje oczekiwania.

        Skomentuj


          #5
          Programator zgodny z stk masz w tme za 50 zł netto wiec cena porównywalna z allegro a przy okazji zamówisz sobie kilka innych rzeczy.

          http://www.tme.eu/pl/katalog/index.p...6bf_szukaj%3D+

          Dobrym roziwązaniem ale drogim jest kupno stk500, mam ten kit w pracy i powiem, że jest kapitalny. Tylko podłączać preryferia i uruchamiać, masz tam wszystko diody, przyciski , kupe wyjść, RS232 do komunikacji z uC z kompem wiec uruchmisz w zasadzie każdy projekt. Niestety ta cena ..

          Co do języka to bascom jest bardzo dobry na początek, jest kapitalny polski help dzieki któremu mozna sie wszystkiego nauczyć. Odnosząc to do C to help w zasadzie nieistnieje, trzeba grzebać po necie i patrzeć "jak to zrobili inni" co niewątpliwie utrudnia start. Język C jest niby uniwersalny ale każda platforma ma swoje unikalne cechy których trzeba się nauczyć, robiłem programy w AVR studio, IAR pod MSP430, IAR pod ARMy atmelowskie, Code Composer Studio pod MSP430 i za każdym razem spotykałem się z pewnymi róznicami które nie pozwalały czasem na "kopiuj - wklej - bo to przecież C". Niemniej podstawa języka jest ta sama i to jest zaleta.

          Wadą bascoma jest to, że uzależnia od swojej prostoty i niestety im dłuzej go używasz tym boleśniejsze będzie przejście na C. Niektóre rzeczy w bascomie są banalnie proste a trudniejsze w C ale niektóre któe sa proste w C są prawie niewykonalne w bascomie, chyba, że się nim super płynnie posługujesz.

          Pośrednim rozwiazaniem może być kompilator Code Vision, też C ale jest w nim sporo automatów podobnych do bascoma ułatwiających pisanie programu dzięki wbudowanym modułom konfiguracji peryferii procka.

          Skomentuj


            #6
            Tu jet to samo co w TME tylko bez obudowy
            http://www.allegro.pl/item919895367_...2.html#gallery

            Skomentuj


              #7
              Jesli nie masz zamiaru rozwijac sie w strone uC i zalezy Ci na szybkim i sprawnym wykonaniu ukladu na uC z np RC5, LCD czy czyms innym to wybierz BASCOMa.
              Szybko sprawnie sobie zaprogramujesz cos takiego.
              Do tego BASCOM posiada swietny manual, ktory chyba nawet jest po polsku.

              C jest 'tata' jezykow, ten jezyk znajdziesz wszedzie.
              Poziom trudnosci jest juz o wiele wyzszy niz w BASCOMie, programujac w C musisz znac dokladnie uC, jego rejestry etc. nie wspominajac o skladni samego jezyka, ktora nie jest taka lopatologiczna jak w BASICu.
              Oczywiscie pod AVRy istnieje avr-gcc czyli darmowy kompilator GNU GCC +dodatki pod AVRki.

              Taki jak Yoshi napisal, kazdy jezyk ma swoje zalety i wady.
              Wiele ludzi pisze ze BASCOM ssie bo zapewne nie uzywala tego jezyka na dluzsza mete, tak naprawde da sie naprawde duzo, wygodnie i szybko cos zrobic.
              Fakt, nie ma co ukrywac ze skladnia BASICa jest nieco 'ułomna' oraz ze BASCOM zjada troche zasobow, jest to zwiazne z tym ze wystepuje w nim wiele funkcji 'gotowcow' robiacych za Ciebie wszystko, nie musisz sie martwic o jakies czasy, zbocza, przerwania nic a nic. (np obsluga RC5)

              Zgodze sie rowniez z:
              Wadą bascoma jest to, że uzależnia od swojej prostoty i niestety im dłuzej go używasz tym boleśniejsze będzie przejście na C.
              To prawda, niestety czasem BASCOM zmusza nas do wykonania 'ukladu pod siebie' co oczywiscie pozniej owocuje latwizna w jego programowaniu, oczywiscie ma to swoje wady.

              Ja sam hobbystycznie klepie w BASOMie bo mnie wiecej nie potrzeba, aczkolwiek nie ukrywam ze teraz wzialem sie za pisanie pod AVR w C poniewaz projekt, ktory chce wykonac bylby kosmiczny do zrezalizowania w BASCOM.

              Jesli chcesz cos na poczatek z C i AVR to polecam to:
              http://temp.tomekk.org/avr_c.pdf

              Druknij i poczytaj.

              /edit/
              Co do plytki testowej, ja osobiscie uzywam tylko podstawki + gniazda ARK3, mam po prostu wyprowadzenie kazdej nozki na ARK, robie uklad na pajaka i cisne z koksem.
              Programator to jak jak pisza, jakis sgodny z stk200/300 badz stk500. Kazdy soft to obsluguje.

              Skomentuj


                #8
                Ja też bardzo długo klepałem w bascomie ale odpadłem w momencie gdy przyszło napisać sterownik graficznego LCD na ks107, "prawie" działało ale prawie jak wiadomo robi wileką różnicę.

                Do prostszych zadań bascom jest świetny, bardzo prosta i przyjemna składnia, ma sporo gotowych rozwiązań o których nie trzeba mieć pojęcia a można z nich korzystać np jak softwarowy dodatkowy USART czy USART buforowany który w C trzeba robić manualnie co już nie jest takie proste dla początkującego a w bascomie to jest jedno polecenie w linii definicji USARTa. Podobnie z LCD, typowy 1..4 liniowy odpalasz w bascomie w ciągu chwili definiując go w opcjach projektu.

                C jest o wiele lepszy do pracy na tablicach, wskaźnikach, na operacjach bitowych, gożej np operuje się moim zdaniem na eepromie czy magistrali SPI ale to moje osobiste zdanie.
                Osobiście sugerowałbym spróbować w C, jeżeli "nie da rady" to wtedy siegnąć po bascoma . Do bascoma był kapitalny kurs Piotra Góreckiego w EdW.

                Skomentuj


                  #9
                  Dowiedziałem się, że będziemy pisać w assemblerze, uC to Atmel 8051 o ile się nie mylę.
                  Myślę, że jednak na początek wezmę jakiś tani programator pod USB i płytkę stykową.

                  Co do języków to tak jak pisałem, robiłem trochę w C++ i Visual Basicu, ale to było pisanie prostych programów. Dzisiaj dowiaduje się, że będziemy w assemblerze pisali, który ponoć do łatwego języka nie należy ale pozwala na poznanie sposobu "myślenia" uC.

                  Skomentuj


                    #10
                    luke666, no to niezła wtopa z tym assemblerem. Nie wiem po co w ogóle uczą takich zabytków na zabytkowym sprzęcie. Można się rozwodzić nad wyższością assemblera ale prawda jest taka, że nikt w tym nie robi bo to jest pętla na szyje, u nas w firmie zrobili w assemblerze program bo gdy powstawało urzadzenie wiekszy procek mogący pomieścić ten sam program pisany w C sporo kosztował. Teraz ten procek kosztuje grosze a problem o nazwie assembler sie ciągnie dalej bo jakakolwiek zmiana w programie nie jest taka prosta.

                    No trudno będziecie sie meczyć całe zajęcia zeby zrobic jakiś banalny program :lol:

                    Skomentuj


                      #11
                      Zamieszczone przez Yoshi_80
                      Nie wiem po co w ogóle uczą takich zabytków na zabytkowym sprzęcie.
                      Takie jest polskie szkolnictwo, uczyć się na starych sprzętach (na pracowni z metrologii korzystamy nie raz ze sprzętu który ma 60lat!! Tak, 60lat!!), starymi metodami, nie iść z techniką do przodu. Z jednej strony nie jestem na elektronice tylko elektrotechnice, więc kwestię programowania uC ograniczają do znajomości podstaw, ale będę chciał się nauczyć programować we własnym zakresie bo mam w głowie kilka projektów które bez ciężko by zrealizować bez użycia uC.

                      Na co zwrócić uwagę przy kupnie programatora?

                      KLIK 1
                      KLIK 2
                      KLIK 3
                      KLIK 4
                      KLIK 5

                      Jedne z nich są wyposażone w zworki, inne nie?
                      Wszystkie te programatory powinny współpracować z Atmelem 8051?

                      Podstawki to w swoim zakresie sobie porobię.

                      Skomentuj


                        #12
                        Uczą i bardzo dobrze że uczą. Rdzeń 8051 ma dalej mocną pozycje na rynku jest wbudowywany w różne układy SoC, (np. uC z USB firmy Cypress) chętnie wykorzystywany jest w układach FPGA w miękkiej postaci :)
                        To że asembler jest trudny to mit, wymaga jednak dużej wiedzy jak uP działa i dlatego katują nim na studiach.
                        Ja miałem na studiach najpierw zabytkowy 8085/86 potem 8051 później Z80, Motorole, PIC, AVR i wreszcie ARM.
                        Asembler, C, czy BASCOM to tylko narzędzia i tak należy na to patrzeć i odpowiednio dobrać do sytuacji. Jeśli ma to być proste urządzenie np. sterowanie drabinką w przedwzmacniaczu to BASCOM będzie wystarczający i głupotą było by pisanie w asemblerze. Wiadomo też ze nikt nie będzie pisał jakiejś dużej aplikacji w asemblerze bo to kompletnie nie ekonomiczne i za nim skończy to może się okazać że urządzenie jest już przestarzałe :) Ale czasami asembler jest niezastąpiony np. gdy trzeba spełnić jakieś rygorystyczne zależności czasowe w jakimś fragmencie programu.
                        Warto znać wszystkie 3 języki a nie ograniczać się tylko do "jedynie słusznej" drogi.

                        Na początek możesz kupić płytkę ZL3AVR
                        http://www.kamami.pl/index.php?ukey=...roductID=16469
                        i samemu zamontować tylko to co Ci będzie potrzebne.
                        BTC ma też książkę o programowaniu AVR w asemblerze są tam przykładowe aplikacje od bardzo prostych po szybką transformatę furiera.
                        W EdW był też dobry kurs C dla AVR.

                        Skomentuj


                          #13
                          ten kurs w EdW to mam jakby ktoś chciał
                          Asustor AS-5002T z MPD + konwerter USB .3lite + DAC PCM1704 by olog + autorskie PRE z PVC + Monobloki Ravlus Amplifilo + kolumny Tatami Audio Hudba

                          Skomentuj

                          Czaruję...
                          X