Jak zaczac nauke programowania mikrokontrolerow

Dec 17, 2004 23 Replies

Chce nauczyc sie programowania mikro kontrolerow i teraz takiie pytanie:



1.Od czego zaczac
  1. co bedzie potrzebne jaki sprzet
  2. moze jakas ksiazka badz ine zrodlo wiedzy o ile sie niemyle najllatwiej jest programowac w bascomie ?

Aha i chcialbym aby calkowity koszt nieprzekroczyl 200 zl



1) ¦ci±gnij MPLAB do PIC-ów np. z
formatting link
W firmie kup np PIC16F88 lub kilka ró¿nych typów 3) Zaopatrz siê tani i dobry programator wspó³pracuj±cy z MPLAB np.
formatting link
i dokumentacjê do procesorów z
formatting link
i do roboty :)

Zacznij od pisania prostych proceduj w asemblerze np. ustawianie bitów portów I/O, generowanie opó¼nieñ. Nastêpnie napisz program "migaj±ca dioda".

Od wyboru jezyka w ktorym chce sie pisac i procesorow ktore chce sie programowac

Programator ktory potrafi zaprogramowac procesory na ktore bedziesz pisal software

Ksiazki sa rozne do roznych procesorow i do roznych jezykow, jak sie zdecydujesz na jaki mikroprocesor pisac i w jakim jezyku to poszukaj w ksiegarniach. Pozatym kody zrodlowe dostepne w sieci.

Zale¿y od tego jaki jezyk jest ci blizszy. S± kompilatory C, Pascala, Basica, moze byc tez assembler

Programator w tej cenie kupisz i procesor. Pozatym bedziesz musial sobie zrobic jakis uklad w ktorym bedziesz testowa³ swoj procesor i zaleznie od tego co ma ten procesor w tym ukladzie robic to cena uzalezniona bedzie od elementow ktore w tym projekcie musza byc uzyte. 7

Użytkownik Enigma napisał:

Na hasło "Bascom" tracę gotowość do pomocy, sorry!

Dlaczego? Je¿eli ktos chce zaczac i sprobowac swoich sil w mikroprocesorach to Bascom nie jest zly. Pozatym nie wiem skad to uprzedzenie do jezykow Basic. Sam pisze w basicu tyle ze na PIC'i i nie uwa¿am zeby to byla jakas ujma na honorze. gdybym mial pisac w assemblerze to pewnie bym nie dal rady i zrezygnowal wogole z mikroprocesorow.

Niech kazdy pisze w tym jezyku w ktorym sie najlepiej czuje.

Wacham sie miedzy Bascom a Assembler aco do ukladu to chce aby mogl sterowac diodami jak i wyswietlaczami lcd. A co do programatora to chyba najlepej kupic kabel od drukarki plytke uniwersalna i zmontowac cos ? jesli tak to prosilbym o jakis schemat bo tak to jutro bym juz wszystko zakupil jednoczesnie z zestawem do robienia plytek mazakiem :P

Aha i jeszcze moze jakis projekcik do testowania procesorka np z 5 diod aby mozna bylo sterowac nimi ?

A.Grodecki napisał(a):

A czy nie można by początkującemu koledze zasygnalizować istnienia innych lepszych kompilatorów zamiast się 'obrażać' ??

Ja swoje pierwsze kroki stawiam w WinAvr (język c) - kompilator gcc-avr + AvrLib(c) najnowsza wersja. Zacząłem od przeczytania dokumentacji procesora (jak się okazało niezbyt dokładnie) i dostosowania programu napisanego ze 2 lata temu do serii AtTiny i najnowszych AvrLib.

Pozdrawiam Willy.

Proponujê tak± ksi±¿eczkê: "Podstawy programowania mikrokontrolera 8051" Jest to kurs asemblera na te uk³ady. Ksi±¿ka zawiera CD z oprogramowaniem do Dydaktycznego Systemu Mikroprocesorowego DSM-51. Taki systemik widzia³em na wolumenie. My¶lê, ¿e zmie¶cisz siê w cenie. Napisane przez Ciebie programy mo¿esz sprawdzaæ w tym systemie i kontrolowaæ za pomoc± PC-ta.

pozdrawiam

........i jeszcze jedno - musisz kupiæ kilka browarów. Umys³ siê od tego rozja¶nia:)

A ja bym ci radzil zaczac bezinwestycyjnie:) Sciagnij avr-gcc, avr-studio 3.5 lub 4 (nie wspolpracuje z avr-gcc) i napisz sobie cos, co potem bedziesz mogl testowac w symulatorze jakim jest avr-studio. Jak ci przypasuje i poznasz to i owo to potem kupisz juz dokladnie to co jest ci potrzebne. Aha - musisz sie jeszcze na wstepie zdecydowac na jakas rodzine mikrokontrolerow, a trudno ci w tym pomoc, bo nie wiadomo o jakich projektach myslisz. Posciagaj tez noty aplikacyjne i tutoriale do prockow ze stron producentow, pare dni lektury i wszystko sie rozjasni:)

U¿ytkownik "A.Grodecki" <ag.usun snipped-for-privacy@modeltronik.com napisa³ w wiadomo¶ci news:cpvlgs$kde$ snipped-for-privacy@nemesis.news.tpi.pl...

dla czego? nie zastanawiales sie ze moze nadejsc dzien w ktorym Ty bedziesz potrzebowal pomocy a nikt Ci jej nie udzieli bo na haslo Twojego problemu ludzie straca "gotowosc do pomocy"? (!) czyzbys byl zazdrosny o sukcesz bascoma podczas gdy przy prosciutkich programach musisz posiedziec nad assemblerem?... denerwujesz sie? po co zatem zabierasz glos jesli nie chcesz pomagac? tutaj nie ma licznika postow, za to jest quota na posty i kilka waznych i zeczowych moze przez przypadek poleciec do /dev/null

~enigma: zorientuj sie jakie projekty Cie interesuja i na czym najczesciej ludzie to robia. potem po prostu zacznij przygode z prockami :)

pozdro4all

KY3ORR

Sam w³asnie sie ucze programowac uP, wybralem zestaw K-300 z nowego elektronika 79pln do tego procesor ATMEGA8515 19,99pln kabel LPT 8pln metr tasmy 10 zylowej goldpiny i wtyczki do tychrze -niewiele stary zasilacz komputerowy -free :) oprogramowanie CodeVision evaluation edition -tyz free:) (limit do 500 slow czy cus, w kardzym badz razie jak na razie pisze, pisze i pisze i jeszcze ograniczenia nie przebilem)

Jak na razie nie wydalem wiecej niz 150pln ze wszystkim.

P.S. polecam tez jakias ksiazke i cwiczenia z Jezyka C np "ANSI C" i jakiekolwiek cwiczonka, do tego moze byc Borland C 3.1 pod dosa jako srodowisko do cwiczen z jezykiem.

Wybor prawdopodobnie padnie na AT90s2313 narazie bede go stosowal do jakis mrygadelek diodowych i podlaczen wyswietlacza lcd czy to dobry uklad do takich rzeczy ? aha i moze ma ktos schemat jak programator sobie zmontowac i zeby plytke mozna bylo zmontowac zestawem z mazakiem :P no chyba ze jest jakas plytka uniwersalna co by pasowala ?

Chmm, moze lepiej pomysl o procku z JTAG lub debug wire? Przyda ci sie, bo daje to o wiele wieksze mozliwosci niz programowanie->nie dziala->dlaczego nie dziala?:)

Enigma napisał(a):

Wszystko zależy od Twoich umiejętności, czy znasz już jakiś język programowania, czy jesteś w stanie sam zrobić programator.

Zakładam że nie znasz żadnego języka i umiesz zbudować prosty programator:

Najlepiej jest zaczynać od asemblera, bo wtedy poznasz dokładnie mechanizmy zachodzące w procesorze, później radze przejść do programowania w języku wyższego poziomu i tu polecam C, ze względu na jego wydajność, chyba że chcesz sie tylko pobawić to Bascom (prosty język masę gotowych procedur, ale jednocześnie bardzo wolny i pamięcio żerny)

Co do mikrokontrolera to może coś z rodziny AT90S, są one tańsze od PIC-ów i programator to kilka kabelków łączących uC z LPT. Co do innych uC to może być problem z programatorem.

Do wszystkiego musisz mieć zasilasz który daje 5V, kilka przełączników, kilkanaście diod, z 20 rezystorów 1k i jeżeli będziesz chciał komunikować się z komputerem przez port szeregowy (nie wszystkie uC go mają) to potrzebujesz jeszcze układu MAX232 + kondensatory (zobacz do noty układu jakich on wymaga), do tego jakiś przewód 3 żyłowy (2 żyły w ekranie) + wtyczka do portu szeregowego.

Dobry symulator + znajomość asemblera = brak potrzeby JTAG :)

Użytkownik KY3ORR napisał:

Przeraziłes mnie!

Denerwuję? Czym? Posiedzieć to trzeba nad każdym programem. Mniej albo więcej. Nie o to chodzi.

Poznanie mikrokontrolerów zaczyna się od poznania mikrokontrolerów ogólnie a potem szczególnie, a nie od razu od pisania programu i w czym. Najpierw się czyta coś w rodzaju "zrozumiec mikrrokontrolery jednoukładowe" i noty aplikacyjne, żeby mieć dość dobry ogólny pogląd na temat. Dopiero potem szuka się odpowiedzi na pytanie w czym pisać, jak pisać. Odwrócenie tej kolejności powoduje, że w następnym rzucie człowiek zada pytanie, dlaczego mu się LED nie pali albo się dosłownie pali jedna za drugą. Ludzie którzy mają awersję do nauki i od razu chcą miec efekt, kończą na baaardzo długim szukaniu pierdółkowatych błędów szkolnych, o których istnieniu nie mają swiadomości, bo niby skąd. To jest moja rada.

Wpisz mnie do swojego filtra od razu.

A moze ktos kto nieboi sie wielu pytan podalby swoje gg bylo bymi wtedy owiele latwiej sie czegos dowiedziec :P

W teorii:) Jesli stan procka zalezy od podlaczonych peryferii to prosciej JTAGa uzyc niz symulowac stan tych zewnetrznych urzadzen.

Mo¿na i tak, mo¿na i tak....

Mia³em ca³y przedmiot na studiach, na którego my¶l od razu dostaje wysypki... dotyczy³, zgodnie z w±tkiem mikrokontrolerów i mikroprocesorów... Tak wiêc ogóln± wiedzê ³adowano mi przez dobry rok... i co... i nic... je¿eli mi powiesz, ¿ebym samodzielnie zrobi³ dyskotekê na 51 - to bêdzie mi trudniej, ni¿ ¶redniemu uczniowi technikum.

Wiêc je¿eli przyjdzie mi co¶ zrobiæ na tych procesorach to przedmiot ze studiów powtórzê, tylko tym razem nie teoretycznie. Spalê trzy p³ytki, zanudzê wszystkich na pl.misc.elektronika. Pokopiê po googl'ach - ¿eby nie by³o. I zanim osi±gne sukces stracê czas na wykonanie dwuch, albo trzech nieudanych projektów.

S± ludzie, którzy s± w stanie nie usn±æ nad ksi±¿k± - wiedza ogólna na temat, s± potem w stanie przekopaæ siê przez setkê manuali do poszczególnych uC. A na koñcu na hura wykonaæ projekt. Mam do tych ludzi wielki szacunek. Niemniej jednak moja natura jest taka, ¿e ¿eby siê czego¶ nauczyæ, muszê tym czym¶ siê dobrze pobawiæ. Inaczej jest to teoria bez pokrycia i nic nie warta. My¶lê, ¿e nie jestem tu jedyny, który preferuje tego typu naukê.

Pozdr. Mrek

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required