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

Jak zacząć programowanie mikrokontrolerów? Język, sprzęt, oprogramowanie

woytec 03 Lip 2003 23:53 3273 19
  • #1 274899
    woytec
    Poziom 11  
    Posty: 5
    Ocena: 1
    Witam szanownych uzytkowników grupy!!!

    Jestem początkującym i chciałbym posiąść wiedzę i umiejętność programowania mikrokontrolerów. Proszę o wskazanie mi, który język programowania na poczatek (czy C++ to dobry wybór) jaki sprzęt jest mi potrzebny, jakie zgromadzić oprogramowanie i od jakigo mikrokontrolera rozpocząć swoją przygodę z tym arcy ciekawym zagadnieniem.

    Za wszelkie informację z góry dziękuję!

    Pozdrawiam
    woytec
  • #2 274972
    ACULA
    Poziom 34  
    Posty: 3005
    Pomógł: 105
    Ocena: 114
    Wg mnie masz dwie drogi do wyboru na początek: Atmel i PIC. Atmel jest tańszy i uniwersalniejszy (kompatybilny z '51). ja zaczynałem w szkole od 51 i asemblera ale w domu niestety miałem problem ze zdobyciem programatora. Potem kumpel wciągnął mnie w PIC. Programowałem je w C. Dla znającego podstawy C jest to bardzo proste.
    Teraz zacząłem bawić się z atmelami 2051 i 8252, programy piszę w asemblerze. I będę próbował przestawić się na c.
    W asemblerze musisz znaać się na budowie procka i dla danego pisać program z prostych komend. W C pomijasz ten problem ( jest dużo ułatwień i bibliotek)
    Dla porównania w C dla PIC do wysterowania LCD wystarczy komenda
    putc_lcd() natomiast w asemblerze musisz napisać kilkanaście(dziesiąt) linijek sterujących poszczególnymi bitami. Programator do tych procków zbudujesz za kilka, kilkanaście złotych, do tego dochodzi program programatora oraz kompilator który zamieni twój program na wartości hex.
    Najważniejsza jest cierpliwość.
  • #3 275071
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Użyj funkcji "szukaj" ten temat był tu poruszany już dziesiątki razy...
  • #4 353486
    Dragonking
    Poziom 13  
    Posty: 136
    Ocena: 6
    polecam bascom 8051 - język wysokiego poziomu - naprawdę dobry i zupełnie wystarczający
  • #5 353562
    Eagle
    Poziom 24  
    Posty: 536
    Pomógł: 57
    Ocena: 31
    Chyba dostanę upomnienie :oops: ale bascom jest ... tz nie trzeba umieć jeździć na rowerze ( czytaj programować w bascomie) żeby nauczyć się jeździć samochodem ( czytaj programować w ASM , C+)

    Jeśli zamierzasz skończyć swoją edukację na mruganiu diodą i w zaawansowanych projektach sterować silnikiem krokowym to może być i bascom ale jeśli chcesz zrobić coś naprawdę wielkiego to musisz poznać jak to działa czyli poznać uC i każdą jego instrukcję :)

    Nie chcesz chyba aby na ekranie twojego LCD wyświetlił się napis " program wykonał nie dozwoloną operację, skontaktuj się z wróżką" :)


    Pozdrawiam ciepło i serdecznie wszystkich zapatrzonych w Bascom

    A temat jest bumerang zawsze wraca choć już było wiele wojen bascom kontra C kontra ASM :)
  • #6 353742
    Dragonking
    Poziom 13  
    Posty: 136
    Ocena: 6
    tak, jeśli chcesz e.. "skończyć swoją edukację na mruganiu diodą i w zaawansowanych projektach sterować silnikiem krokowym" to bascom jest w sam raz dla ciebie !!! :lol: i NIE prawdą jest że ten język ciągle się rozwija, NIE prawdą jest że można bezproblemowo odbierać sygnały z pilota RC5 i dzięki temu sterować czym popadnie, NIE można wykonać przy pomocy teko układu nawet bardzo złożonych układów logicznych - słowem - nie trać na niego czasu !!! A to było tylko kilka przykładów... na brak inwencji nawet assembler nie pomoże
  • #7 353751
    Dragonking
    Poziom 13  
    Posty: 136
    Ocena: 6
    teraz na poważnie - sorki Eagle jeśli nie spodoba ci sie mój "odwet" ale uważam iżwszystko ma wady i zalety, i nie powinno się twierdzić że coś jest lepsze a coś gorsze. Radzę woytec'owi wypróbować różne języki programowania - może ten najbardziej krytykowany będzie jednak najbardziej poręczny? Wszystko zależy od człowieka...
  • #8 353787
    piotruss
    Poziom 12  
    Posty: 108
    Pomógł: 2
    Ocena: 1
    Ja bym polecil zaczac od asemblera mozesz sciagnas sobie np avr studio ze strny atmela. To jest doskonale narzedzie do nauki progrmowania po napisaniu programu mozesz odrazu zobaczyc co sie dzieje.
  • #9 353803
    ACULA
    Poziom 34  
    Posty: 3005
    Pomógł: 105
    Ocena: 114
    a ja używam wielu języków, nawet w jednym systemie
    a) w programie wyższego poziomu przeważnie można umieścić wstawkę asemblerową
    b) język należy dobrać do oczekiwań, dzisiaj potrzebuję sterować LCD, stosować wiele pętli, więc język wysokiego poziomu
    jutro piszę inny program używam asemblera, w którym zależy mi na ścisłej kontroli i tolerancji czasu w us
  • #10 353944
    Dragonking
    Poziom 13  
    Posty: 136
    Ocena: 6
    cieszę się że ktoś podziela mój punkt widzenia :)
  • #11 354083
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Dragonking: sprawdź może datę z kiedy był ten post - odnoszę wrażenie...
    Ale skoro już się dyskusja zaczęła to zgadzam się z Eagle - bascom nadaje się do zabawy.
    Proponuję napisać sobie progarm w asm, C i BASCOMie (za każdym razem robiący to samo), skompilować i sprawdzić ile zajmują pamięci.
  • #12 354243
    h-doc
    Poziom 27  
    Posty: 1208
    Pomógł: 57
    Ocena: 21
    no to teraz moja opinia:
    - jeśli znasz C na PC, to zacznij od programowania w C - przesiadka nie jest trudna, nawet biblioteki standardowe są podobne. Czasem jest kłopot z utrzymaniem standardu, bo nie ma chyba kompilatorów w pełni zgodnych z ANSI
    - C++ to domena komputerów - w MCU się tego nie stosuje
    - jeśli chodzi o asembler, to akurat rodzina '51 ma prosty, wygodny i łatwy asembler. Dlatego dobrze rozpocząc pracę od '51
    - w riscowych MCU (AVR, PIC) asembler moim zdaniem jest trudniejszy, mnemoniki są trudniejsze do zapamiętania, filozofia programowania jest odmienna i troszkę mniej intuicyjna
  • #13 354274
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    BASCOM forever!!!
    Świat powinien być wdzieczny twórcom BASCOMa, dzięki nim każdy może programować uC

    https://www.elektroda.pl/rtvforum/topic74023.html#354257

    W tym programie do włączeni apowinnien być test ze znajomości układu, tylko, że obawiam się nikt by go pewnie wtedy nie używał...
  • #14 354618
    piotruss
    Poziom 12  
    Posty: 108
    Pomógł: 2
    Ocena: 1
    jak zaczynac to zaczynac od podstaw a wszystko(programowanie) sie zaczelo od asemblera ;)
  • #15 354715
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Tdv napisał:
    BASCOM forever!!!
    Świat powinien być wdzieczny twórcom BASCOMa, dzięki nim każdy może programować uC
    Za windows też powinien byc wdzięczny?, bo moim zdaniem to ta sama plaga.
    Kurde znowu zchodzimy z dyskusji merytorycznej na dyskusje nad poglądami.
  • #16 354778
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Według mnie programowanie, to umiejętność korzystania z efektów swojej pracy. Co to znaczy? Napisałem w asemblerze np. procedury transmisji I2C, sprawdziłem i działają. W następnym programie też z nich skorzystam. Podobnie z LCD - to trzeba napisać tylko RAZ (ostatecznie poszukać w necie). Jeśli chodzi o języki wysokiego poziomu - OK, bardzo się przydają w zaawansowanych projektach chyba, że mamy pokaźną bibliotekę własnych procedur :D .
    Pozdrawiam.
  • #17 354926
    Eagle
    Poziom 24  
    Posty: 536
    Pomógł: 57
    Ocena: 31
    Może poprostu taki ślepy pęd do Bascom'a wynika z lenistwa ? Bo po co uczyć się prowadzić samochód, skoro można nauczyć się nr radio-taxi i też byc na miejscu za drobną opłatą. Po co czytać całą książkę skoro można streszczenie ? Po co myć zęby skoro są protezy ? Po co przygotować sobie coś do jedzenia, skoro są reustauracje? Po co uczyc się asm, skoro jest Bascom :) . Może czas zdjąc klapki z oczu i rozejrzeć się świat nie będzie na was czekał. Zobacz na forum, 90 % z problemami o programowanie dotyczy się Bascom'a dlaczego jest tak mało pytań o asm ? odp : bo tam nie ma problemów.

    A teraz mam jeszcze pytanko :

    Może nauczymy kogoś asm AVR po polsku - ja sam z powodu obowiązków nie podejmuje się tego ale gdyby było kilku chętnych i wiele pytających ... w sumie razem możemy wszystko. Więc niech odpowiedzą najpierw Ci którzy prowadzili by razem taki kurs .
  • #18 354944
    ACULA
    Poziom 34  
    Posty: 3005
    Pomógł: 105
    Ocena: 114
    uważam że szkoda dalej drążyć ten temat, kazdy wie swoje i poglądów raczej nie zmieni
    co do propozycji nauki programowania to jestem przeciw
    uważam że najlepiej, gdy ktoś chociaz raz w życiu pójdzie do księgarni i kupi odpowiednią książkę, która wystarczy na kilkanaście lat, książka jest w cenie jednego procka i zwróci się po niespaleniu takiej sztuki
    ja 9 lat temu kupiłem książkę do asemblera i nadal z niej korzystam,
    po drugie to w edw było kilkanaście lekcji programowania w asm ale ludziom nie chce się szukać i myśleć tylko czekają na gotowce

    uważam że gdyby każdy początkujący kupiłby książkę za ok 10-20zł to pytania na forum dotyczyłyby konkretów a nie podstawowych pytań, w sieci wszystkiego nie ma, każdy myśli że ściągnie sobie fragment kodu itp
    uważam że nie ważne jest to czy ktoś programuje w takim czy takim języku, najważniejsze to wiedzieć co się programuje, poznać architekturę procka, sposób działania itp, a dopiero potem zacząć pisać program

    PS przy wyborze programu należy wziąć również pod uwagę, czy jest to pełna wersja, niestety nie mogę dorwać pełnych wersji kompilatorów np.C które obsłużyłyby pełne 8k, lub chociaż 4 :(
  • #19 355279
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Acula napisał:
    ... po drugie to w edw było kilkanaście lekcji programowania w asm ale ludziom nie chce się szukać i myśleć tylko czekają na gotowce

    uważam że gdyby każdy początkujący kupiłby książkę za ok 10-20zł to pytania na forum dotyczyłyby konkretów a nie podstawowych pytań, w sieci wszystkiego nie ma, każdy myśli że ściągnie sobie fragment kodu itp
    uważam że nie ważne jest to czy ktoś programuje w takim czy takim języku, najważniejsze to wiedzieć co się programuje, poznać architekturę procka, sposób działania itp, a dopiero potem zacząć pisać program

    .... :(



    I tu trafiłeś w sedno sprawy, po prostu się nie chce. Czasami wystarczyłoby ściągnąć darmowego manuala i przejrzeć - ale po co lepiej niech to zrobi ktoś za mnie... Zgroza, a potem mamay wicepremiera Pola z jego pomysłami...

    PS. elektryk: poniekad masz rację - Winzgroza, jak sama nazwa wskazuje... Ale jednak wielu użytkowników sięga po W. z przymusu - po prostu brak odpowidniego oprogramowania na inne platformy.
  • #20 355991
    TMK_M
    Poziom 22  
    Posty: 671
    Pomógł: 38
    Ocena: 23
    Polecam Bascom 8051 lub AVR.
    Szukaj informacji tutaj na elektrodzie lub w EdW www.edw.com.pl
    Programowanie w Basicu jest chyba najprostrze i najprzyjemniejsze, a Bascomy posiadaja durza mozliwosci.

Podsumowanie tematu

✨ Dyskusja dotyczy rozpoczęcia nauki programowania mikrokontrolerów, ze szczególnym uwzględnieniem wyboru języka programowania, sprzętu i oprogramowania. Wskazano dwie popularne rodziny mikrokontrolerów na start: Atmel (w tym AVR) oraz PIC, z uwagi na ich dostępność i uniwersalność. Zalecane jest rozpoczęcie od języka C, który jest prostszy niż asembler i posiada bogate biblioteki ułatwiające programowanie, np. funkcje do sterowania LCD. C++ nie jest polecany do mikrokontrolerów ze względu na ograniczenia zasobów. Alternatywnie wymieniono Bascom 8051 jako język wysokiego poziomu, łatwy dla początkujących, choć z ograniczeniami i krytyką dotyczącą jego możliwości w bardziej zaawansowanych projektach. Asembler jest polecany do nauki podstaw działania mikrokontrolera i do projektów wymagających precyzyjnej kontroli, jednak jest trudniejszy i wymaga znajomości architektury procesora. Wskazano narzędzia takie jak AVR Studio do nauki asemblera. Podkreślono znaczenie cierpliwości, samodzielnej nauki, korzystania z dokumentacji i książek oraz praktyki w pisaniu i testowaniu programów. Dyskusja zawiera także refleksje na temat podejścia do nauki – czy warto zaczynać od prostych narzędzi jak Bascom, czy od razu uczyć się asemblera i C, aby lepiej zrozumieć mikrokontroler i mieć większe możliwości w projektach.
Wygenerowane przez model językowy.
REKLAMA