DOM Wizy Wiza do Grecji Wiza do Grecji dla Rosjan w 2016 roku: czy jest konieczna, jak to zrobić

Programowanie mikrokontrolerów dla początkujących. Programowanie mikrokontrolerów w języku C Jakie istnieją mikrokontrolery

Jestem kategorycznie przeciwny takiemu podejściu. Zwykle wszystko się kończy - albo niczym, albo forami zawalonymi prośbami o pomoc. Nawet jeśli ktoś otrzyma pomoc, w 90% przypadków już nigdy nie pojawi się ona na stronach poświęconych elektronice. W pozostałych 10% nadal zasypuje fora prośbami, najpierw go kopną, a potem obrzucą błotem. Z tych 10% kolejne 9% zostaje wyeliminowanych. Wtedy są dwie opcje: albo wpadnie do głupiej głowy i nadal idzie do początku, albo w szczególnie zaniedbanych wariantach, jego zadaniem jest kopiowanie cudzych projektów, bez najmniejszego zastanowienia się, jak to działa. Arduiniści często rodzą się z tych drugich.

Moim zdaniem najlepszym rozwiązaniem jest przestudiowanie urządzeń peryferyjnych i funkcji, jeśli jest to mikrokontroler. Lepiej najpierw dowiedzieć się, jak kopać nogi, potem timery, a potem interfejsy. I dopiero wtedy spróbuj podnieść swój FAT. Tak, to nie jest szybkie i będzie wymagało czasu i wysiłku, ale praktyka pokazuje, że niezależnie od tego, jak bardzo będziesz próbował skrócić tę ścieżkę, i tak pojawią się problemy, które trzeba będzie rozwiązać i spędzisz znacznie więcej czasu bez tej bazy.

Tylko nie myl ciepłego z miękkim. Po pierwsze, od wszelkich zasad są wyjątki, osobiście widziałem osoby, które nigdy wcześniej nie trzymały mikrokontrolerów w rękach, ale w niezwykle krótkim czasie potrafiły wyprzedzić doświadczonych doświadczonych radioamatorów, nie bierzemy ich pod uwagę. Po drugie, spotkałem osoby, które zaczynały od kopiowania diagramów i od razu to wymyśliły, ale najprawdopodobniej jest to wyjątek od reguły. Po trzecie, wśród twórców Arduino są też doświadczeni programiści; to tylko platforma, ale to raczej wyjątek.

Jeśli mówimy o masie ogólnej, to jest dokładnie tak, jak opisałem na początku: niechęć do zajęcia się podstawami w najlepszym razie opóźnia moment, w którym trzeba będzie wrócić do tych zagadnień. W najgorszym przypadku szybko osiągniesz sufit swojej wiedzy i zawsze będziesz obwiniać kogoś innego za swoje problemy.

2. Zanim rozwiążesz problem, rozbij go aż do absurdu, aż do „lutowania rezystora”, to pomaga, zostało przetestowane. Małe problemy są znacznie łatwiejsze do rozwiązania. Kiedy duże zadanie zostaje podzielone na kilka małych działań, pozostaje jedynie je wykonać. Mogę Ci dać jeszcze jedną dobrą radę, choć może się to wydawać szalone – weź zeszyt i zapisuj w nim wszystko, co zamierzasz zrobić. Myślisz, że to zapamiętam, ale nie. Powiedzmy, że dzisiaj mam dobry humor i myślę o tym, jak zebrać deskę. Zapisz plan działania: kup rezystor, przygotuj przewody, zamontuj wyświetlacz. Wtedy o wszystkim zapomnisz, otwórz notes i spójrz – tak, dzisiaj mam ochotę na piłowanie i planowanie, zajmę się zapinaniem. Albo składasz płytkę i do lutowania pozostaje ostatni element, ale tak nie jest, rezystory się skończyły, więc powinienem to spisać przed lutowaniem, wtedy przypomniało mi się.

3. Nie korzystaj z generatorów kodu, niestandardowych funkcji i innych uproszczeń, przynajmniej na pierwszych etapach. Mogę podać mój osobisty przykład. Kiedy aktywnie korzystałem z AVR, korzystałem z kodogenu CAVR. Byłem z niego całkowicie zadowolony, choć wszyscy mówili, że to bzdura. Ciągle dzwoniły dzwonki, były problemy z bibliotekami, ze składnią, z portowaniem, ale trudno było z tego zrezygnować. Nie rozumiałem, jak to działa, po prostu wiedziałem, gdzie i jak zaznaczyć pola.

Wraz z pojawieniem się STM32 kołek został wbity do mojej trumny, trzeba było się na nie wczołgać i wtedy pojawiły się problemy. Problemy, delikatnie mówiąc, musiałem opanować mikrokontrolery i język C od podstaw. Nie powtórzyłem już błędów z przeszłości. Muszę przyznać, że przydało się to już nie raz. Od tego czasu miałem okazję pracować z innymi platformami i nie doświadczam żadnych trudności, takie podejście się usprawiedliwia;

Jeśli chodzi o wszystkie ulepszenia i uproszczenia, jedno było bardzo dobre porównanie: są jak wózki inwalidzkie jeżdżące po szynach, możesz jechać i cieszyć się, ale nie możesz wstać, dokąd cię zabiorą, tam dojedziesz.

4. Naucz się języka C. Oj, jak często słyszę nowicjuszy, którzy przechwalają się, że dobrze znają radio. Stało się to dla mnie pożywieniem; zawsze lubię konsultować się z takimi rozmówcami. Zwykle od razu okazuje się, że w ogóle nie znają języka. Mogę powiedzieć, że pomimo pozornej prostoty, nie spotkałem wielu osób, które naprawdę dobrze go znały. W zasadzie każdy zna go na tyle, na ile jest to potrzebne do rozwiązywania problemów.

Problem jednak moim zdaniem polega na tym, że nie znając możliwości, mocno się ograniczasz. Z jednej strony nieoptymalne rozwiązania, które będą wymagały mocniejszego sprzętu, z drugiej strony nieczytelny kod, który jest trudny w utrzymaniu. Moim zdaniem czytelność i łatwość konserwacji kodu to jedno z najważniejszych miejsc i trudno mi sobie wyobrazić, jak można to osiągnąć bez wykorzystania wszystkich możliwości języka C.

Wielu początkujących z pogardą podchodzi do nauki języka, więc jeśli nie jesteś taki jak wszyscy inni, natychmiast staniesz się dwa kroki nad innymi początkującymi. Nie ma również znaczenia, gdzie uczyć się języka. Moim zdaniem mikrokontroler nie bardzo się do tego nadaje. O wiele łatwiej jest zainstalować jakieś Visual Studio lub Qt Creator i rozwiązywać problemy z wiersza poleceń.

Pomocne będzie także zapoznanie się z testami językowymi przeprowadzanymi podczas rozmów kwalifikacyjnych. Jeśli poszperasz, możesz dowiedzieć się wielu nowych rzeczy.

5. Nauka asemblera? Nie trzeba się go bać ani ubóstwiać. Nie powinieneś myśleć, że jeśli wiesz, jak napisać program w języku asemblera, od razu zostaniesz guru mikrokontrolerów, z jakiegoś powodu jest to powszechne błędne przekonanie. Przede wszystkim jest to narzędzie. Nawet jeśli nie planujesz go używać, nadal zdecydowanie zalecałbym napisanie przynajmniej kilku programów. To znacznie uprości zrozumienie działania mikrokontrolera i wewnętrznej struktury programów.

6. Przeczytaj arkusz danych. Wielu programistów o tym zapomina. Studiując arkusz danych, będziesz o dwa stopnie wyższy od tych programistów. Jest to niezwykle przydatne, po pierwsze, jest to główne źródło, niezależnie od tego, jakie witryny czytasz, w większości przypadków powtarzają one informacje z arkusza danych, często z błędami i pominięciami. Mogą się tam również znajdować informacje, o których teraz nie myślisz, ale które mogą przydać się w przyszłości. Może się zdarzyć, że pojawi się jakiś błąd i pamiętasz, że tak, było o tym powiedziane w arkuszu danych. Jeśli Twoim celem jest zostać dobrym programistą, nie można uniknąć tego etapu; będziesz musiał przeczytać arkusze danych; im szybciej zaczniesz to robić, tym szybszy będzie Twój rozwój.

7. Ludzie często proszą o przesłanie arkuszy danych w języku rosyjskim. Arkusz danych jest czymś, co należy postrzegać jako prawdę, najdokładniejszą informację. Nawet tam możliwe są błędy. Jeśli dodać do tego błędy tłumacza, to też jest on człowiekiem, może nawet nie celowo, tylko błędnie ortograficznym. Albo ma swoją wizję, może przeoczyć coś, co jego zdaniem jest dla Ciebie nieistotne, a być może niezwykle ważne. Sytuacja staje się szczególnie zabawna, gdy trzeba znaleźć dokumentację dla mało popularnych komponentów.

Moim zdaniem dużo łatwiej jest z góry wykluczyć całą warstwę tych problemów, niż je później wyłapać. Dlatego kategorycznie jestem przeciwny tłumaczeniom, jedyną prawdziwą radą jest studiowanie angielskiego, aby czytać arkusze danych i instrukcje w oryginale. Znaczenie frazy możesz zrozumieć za pomocą programów tłumaczących, nawet jeśli Twój poziom języka jest zerowy.

Przeprowadziłem eksperyment: miałem ucznia, arkusz danych i tłumacza Google. Eksperyment nr 1: uczeń otrzymał arkusz danych i otrzymał zadanie samodzielnego znalezienia potrzebnych wartości, wynik to „jak mogę”, „nie znam angielskiego”, „nic nie znalazłem/nie znalazłem” „nie rozumiem” to typowe sformułowania wskazujące, że nawet nie próbował. Eksperyment nr 2: ten sam uczeń dostał ten sam arkusz danych i to samo zadanie, z tą różnicą, że siedziałem obok niego. Efekt jest taki, że po 5 minutach sam znalazł wszystkie niezbędne wartości, zupełnie bez mojego udziału, bez znajomości języka angielskiego.

8. Wymyśl koło na nowo. Na przykład, jeśli studiujesz jakąś nową rzecz, powiedzmy tranzystor, wujek Horowitz autorytatywnie stwierdza na kartach swojej książki, że tranzystor wzmacnia, zawsze mów - NIE WIERZĘ. Bierzemy tranzystor w ręce, podłączamy go do obwodu i upewniamy się, że tak naprawdę jest. Istnieje cała warstwa problemów i subtelności, których nie opisuje się w książkach. Poczujesz je dopiero, gdy je podniesiesz i spróbujesz złożyć. Jednocześnie zdobywamy garść wiedzy z tego zakresu i poznajemy niuanse. Poza tym każda teoria bez praktyki zostanie zapomniana znacznie szybciej.

Na początkowym etapie bardzo pomogła mi jedna metoda - najpierw składasz obwód i widzisz, jak to działa, a potem próbujesz znaleźć uzasadnienie w książce. Podobnie jest z częścią programową, gdy mamy gotowy program, łatwiej go zrozumieć i powiązać fragmenty kodu, które za co odpowiadają.

Ważne jest również, aby wyjść poza to, co dozwolone, zastosować większe/mniejsze napięcie, dobrać większe/mniejsze rezystory i monitorować zmiany w działaniu obwodu. Wszystko to zostaje w mózgu i przyda się w przyszłości. Tak, jest to obarczone zużyciem komponentów, ale uważam to za nieuniknione. Na początku siedziałem i wyrzucałem wszystko, ale teraz, zanim postawiłem zakład na ten czy inny nominał, zawsze pamiętam te zabawne czasy i konsekwencje postawienia złego nominału.

9. Jak bym to zrobił, gdybym był programistą? Czy mogę zrobić lepiej? Zadawaj sobie te pytania za każdym razem, to naprawdę pomaga w postępie w nauce. Na przykład przestudiuj interfejsy 1wire, i2c, spi, uart, a następnie zastanów się, czym się różnią, czy można było to zrobić lepiej, to pomoże ci zrozumieć, dlaczego wszystko jest tak, a nie inaczej. Będziesz także wiedzieć, kiedy i jakiego najlepiej użyć.

10. Nie ograniczaj się technologią. Ważne jest, aby ta rada miała bardzo cienką linię. Był taki etap w życiu, kiedy z każdego progu słychać było „FPGA warto znać”, „ale z FPGA można coś zrobić”. Formalnie nie miałem żadnego celu w studiowaniu PLISins, ale nie mogłem tego zignorować. Na zapoznanie się z tym zagadnieniem przeznaczono trochę czasu. Czas nie był stracony, miałem szereg pytań dotyczących wewnętrznej budowy mikrokontrolerów i dopiero po komunikacji z Plisinami otrzymałem na nie odpowiedzi. Podobnych przykładów jest wiele; cała wiedza, którą zdobyłem w takiej czy innej formie, prędzej czy później się przydała. Nie mam ani jednego bezużytecznego przykładu.

Ale jak już powiedziano, kwestia technologii ma cienką granicę. Nie ma potrzeby chwytania wszystkiego. W elektronice jest wiele dziedzin. Może lubisz analog, może cyfrę, może jesteś specjalistą od zasilaczy. Jeśli nie jest to jasne, spróbuj wszędzie, ale praktyka pokazuje, że na początku lepiej skoncentrować się na czymś konkretnym. Nawet jeśli trzeba naciskać w kilku kierunkach, lepiej robić to etapami, najpierw przepychając jedną rzecz.

11. Jeśli zapytasz początkującego radioamatora, co lubi bardziej: programowanie czy projektowanie obwodów, to z 99% prawdopodobieństwem odpowiedź będzie brzmiała: programowanie. Jednocześnie programiści ci spędzają większość czasu na tworzeniu płytek z LUT/fotomasy. Powody są na ogół jasne, ale dość często przeradza się to w swego rodzaju szaleństwo, które polega na robieniu desek dla samego robienia desek.

W Internecie prawie jedyną prawdziwą drogą do programowania jest zostanie Jedi w produkcji płytek drukowanych. Ja też przeszłam tę drogę, jednak za każdym razem zadaję sobie pytanie dlaczego? Odkąd kupiłam sobie kilka desek na każdą okazję, za każdym razem myślę, że spokojnie mogłabym przeżyć ten cały czas bez domowych desek. Moja rada jest taka, że ​​jeśli jest choć cień wątpliwości, to lepiej nie zawracać sobie głowy i wziąć gotową płytkę do debugowania, a lepiej poświęcić czas i pieniądze na programowanie.

12. Następna rada jest szczególnie bolesna; naprawdę nie chcę o tym rozmawiać, ale muszę. Często do mnie piszą, że xxx rubli jest za drogie, gdzie można je dostać taniej. Wydaje się, że to częste pytanie, ale zwykle od razu się napinam, ponieważ często przeradza się to w niekończące się skargi na brak pieniędzy. Zawsze mam pytanie: dlaczego nie oderwać tyłka i nie iść do pracy? Nawet w tym samym czasie, nawet na budowę, trzeba poczekać miesiąc, ale wtedy można kupić kilka desek, które wytrzymają przez następny rok. Tak, wiem, że w małych miasteczkach i na wsiach ciężko znaleźć pracę, przeprowadzić się do dużego miasta. Pracuj zdalnie, ogólnie trzeba się kręcić. Po prostu nie ma co narzekać, jest wyjście z sytuacji, kto szuka, znajdzie.

13. Dodam do tego samego zbioru bardzo bolesną kwestię instrumentu. Narzędzie powinno umożliwiać możliwie najszybsze rozwijanie urządzeń. Z jakiegoś powodu wielu programistów nie ceni swojego czasu. Typowym przykładem jest tani zacisk do terminali, na którym wielu pracodawców lubi oszczędzać. Problem w tym, że nawet nie zaciska się prawidłowo, co powoduje wypadanie przewodów. Musisz wykonać szereg dodatkowych manipulacji, marnując odpowiednio czas. Ale jak wiadomo, głupiec płaci trzy razy, więc niska cena zaciskarki wzrośnie wielokrotnie, ze względu na poświęcony czas i złą jakość zaciskania.

Nie twierdzę, że tanio = źle, nie – wszystko zależy od sytuacji. Wróćmy do przykładu zaciskarki; był czas, że zaciskałem ją czymkolwiek, więc często pojawiały się problemy. Jest to szczególnie nieprzyjemne, gdy uruchamiasz płytkę i nie działa, po długich poszukiwaniach błędu okazuje się, że przyczyną jest źle zaciśnięty przewód, szkoda. Odkąd pojawiło się normalne zaciskanie, nie było takich problemów. Tak, ropucha wewnętrzna rechotała i dusiła się kosztem, ale nigdy nie żałowałem tej decyzji. Chcę tylko powiedzieć, że po pracy na normalnym narzędziu nie chce się wracać do złego, nie chce się nawet o tym rozmawiać. Jak pokazuje praktyka, lepiej nie oszczędzać na narzędziach, w razie wątpliwości przetestuj je u kogoś, przeczytaj recenzje, recenzje.

14. Załóż stronę internetową, możesz na niej pisać co chcesz, podobnie jak notatki. Praktyka pokazuje, że pracodawcy wciąż tego nie czytają, ale sam fakt ma ogromne znaczenie.

15. Delikatne pytanie: czy wyższe wykształcenie specjalistyczne jest potrzebne? Znam nie jeden przypadek, gdy ludzie pracowali bez żadnego wykształcenia, a bazując na swoim doświadczeniu i wiedzy, byli w stanie naświetlić każdego certyfikowanego specjalistę. Właściwie nie mam specjalistycznego wykształcenia, czy odczuwam z tego powodu dyskomfort? W pewnym stopniu tak.

Na samym początku, gdy mikrokontrolery były dla mnie hobby, bardzo pomagałem zajęciami i dyplomami z różnych uczelni, żeby tylko ocenić swój poziom. Mogę śmiało powiedzieć, że poziom jest ogólnie niski, niezależnie od nazwy uczelni. Aby napisać taki dyplom, nie trzeba studiować kilka lat. Możesz to osiągnąć samodzielnie w bardzo krótkim czasie. A jednak często zdarzało się, że studenci znali jakiś przedmiot, którego uczyli się na 2-3 roku, a ja go nie znałem. Chociaż całą tę wiedzę rekompensowała samokształcenie, nadal lepiej byłoby nie tracić na to czasu.

Uniwersytet dla kawałka papieru. Mogę powiedzieć, że zdarzały się też sytuacje, gdy proponowano im pracę wymagającą obowiązkowego wykształcenia i szkoda, że ​​w tamtym momencie nie było kartki papieru. Ale ogólnie rzecz biorąc, historia pokazuje, że większość pracodawców nie przejmuje się twoją papierkową robotą.

Następny punkt jest często nie brany pod uwagę, jest nim środowisko. Nie zapominaj, że ludzie, z którymi się uczysz, to twoje pokolenie i możliwe, że będziesz z nimi pracować. Liczba firm działających w jednej branży jest bardzo ograniczona. Praktyka pokazuje, że nawet w dużych miastach wszyscy się znają, nawet w intymnych szczegółach.

Kolejną kwestią są możliwości. Często uniwersytety mają swoje własne możliwości - sprzęt, może jakieś sekcje, może jakieś programy do pracy za granicą, należy to wykorzystać, jeśli jest choćby najmniejsza szansa. Jeśli nie widzisz perspektyw na jednej uczelni, idź na inną, świat nie kończy się na jednej.

Podsumowując, rada jest taka: jeśli jest choćby najmniejsza szansa, musisz iść na studia, zdecydowanie zgodnie ze swoim profilem, jeśli jest chociaż jakaś szansa, to wspinaj się wszędzie, a nie siedź na tylnym siedzeniu. Nawiązuj znajomości, jednocześnie ćwicz i rozwijaj się w domu.

16. Czy jest już za późno na rozpoczęcie programowania w wieku 20, 30, 40, 50 lat? Praktyka innych ludzi pokazuje, że wiek wcale nie jest przeszkodą. Z jakiegoś powodu wielu nie bierze pod uwagę faktu, że istnieje cała warstwa pracy, której młodzi ludzie ze względu na swoje ambicje nie chcą wykonywać. Dlatego pracodawcy wolą zatrudniać tych, którzy będą go nosić. To Twoja szansa, aby się uzależnić, a wtedy wszystko zależy tylko od Ciebie.

I ostatnia rada. Wielu radioamatorów jest mało komunikatywnych, złych i drażliwych – uważaj to za specyfikę swojej pracy. Promieniuj życzliwością i pozytywnym nastawieniem, bądź dobrym człowiekiem.

Mikrokontrolery to specjalny rodzaj chipów służących do sterowania różnymi urządzeniami elektronicznymi.

Są to miniaturowe komputery, których wszystkie elementy (procesor, RAM, ROM) znajdują się w jednym chipie. Różnią się od mikroprocesorów obecnością timerów, kontrolerów, komparatorów i innych urządzeń peryferyjnych. Obecnie w produkcji wykorzystywane są mikrokontrolery:

  • czujniki do samochodów;
  • zabawki;
  • wskaźniki napięcia, ładowarki;
  • panel kontrolny;
  • miniaturowe urządzenia elektroniczne.

Zarządzanie odbywa się za pomocą specjalnych programów.

Początkującym zaleca się rozpoczęcie nauki programowania mikrokontrolerów od przestudiowania architektury i odmian. Przemysł produkuje następujące typy MK:

  • wbudowany;
  • 8-, 16- i 32-bitowe;
  • cyfrowe procesory sygnałowe.

Producenci mikrokontrolerów muszą stale balansować pomiędzy rozmiarem, mocą i ceną produktów. Dlatego modele 8-bitowe są nadal w użyciu. Mają raczej niską produktywność, ale w wielu przypadkach jest to zaleta, ponieważ pozwala oszczędzać zasoby energii. Cyfrowe procesory sygnałowe są w stanie przetwarzać duże strumienie danych w czasie rzeczywistym. Jednak ich koszt jest znacznie wyższy.

Liczba użytych kodów operacji może nie być taka sama. Dlatego stosowane są systemy instrukcji RISC i CISC. Pierwszy jest uważany za zredukowany i jest wykonywany w jednym cyklu zegara generatora. Umożliwia to uproszczenie sprzętowej implementacji procesora i zwiększenie wydajności chipa. CISC to złożony system, który może znacząco zwiększyć wydajność urządzenia.

Nie da się nauczyć programowania mikrokontrolerów dla początkujących bez zrozumienia algorytmów. Polecenia są wysyłane do procesora chipa w określonej kolejności. Co więcej, ich struktura musi być postrzegana jednoznacznie przez procesor. Dlatego najpierw programista tworzy sekwencję wykonania polecenia. Możesz zmusić procesor do natychmiastowego zatrzymania programu, wywołując przerwanie. W tym celu wykorzystywane są sygnały zewnętrzne lub wbudowane urządzenia peryferyjne.

Rodziny mikrokontrolerów

Najpopularniejsze rodziny mikrokontrolerów to:

  • MSP430 (TI);
  • ARM (ARM Limited);
  • MCS 51 (INTEL);
  • STMB (STMicroelectronics);
  • PIC (mikrochip);
  • AVR (Atmel);
  • RL78 (Elektronika Renesas).

Jednym z najpopularniejszych produktów w branży elektronicznej są produkty firmy Atmel zbudowane na rdzeniu RISC. Pierwsze mikroukłady, opracowane w 1995 roku, należą do grupy Classic. Wskazane jest przestudiowanie programowania mikrokontrolerów AVR dla początkujących na bardziej nowoczesnych modelach:

  • Mega to rodzina potężnych chipów o zaawansowanej architekturze.
  • Malutkie - niedrogie produkty z ośmioma pinami.

Należy pamiętać, że zgodność systemów dowodzenia zostaje zachowana tylko przy przenoszeniu programu z mikrokontrolera o niskiej wydajności do mikrokontrolera o większej mocy.

Produkty Atmel są proste i zrozumiałe. Aby jednak móc korzystać ze wszystkich funkcjonalności, będziesz musiał opracować oprogramowanie. Początkującym zaleca się rozpoczęcie programowania mikrokontrolerów AVR od pobrania specjalistycznego środowiska Atmel Studio. Aktualną wersję udostępniamy bezpłatnie na oficjalnej stronie producenta. Do tworzenia oprogramowania w tym środowisku nie są wymagane żadne dodatkowe komponenty oprogramowania.

Kompleks Atmel Studio zawiera ogromną liczbę przykładów gotowych projektów. Pomoże to początkującemu szybko opanować podstawowe możliwości i rozpocząć tworzenie własnych programów. Posiada również moduły do ​​kompilacji i końcowego debugowania kodu. Równolegle z jego rozwojem trzeba uczyć się języków programowania. Bez nich nie da się stworzyć oprogramowania.

Języki programowania

Języki programowania mikrokontrolerów niewiele różnią się swoją strukturą od języków używanych w komputerach osobistych. Wśród nich są grupy niskiego i wysokiego szczebla. Współcześni programiści używają głównie C/C++ i Assembly. Między zwolennikami tych języków toczą się niekończące się debaty na temat tego, który z nich jest lepszy.

Asembler niskiego poziomu ostatnio traci na popularności. Wykorzystuje bezpośrednie instrukcje kierowane bezpośrednio do chipa. Od programisty wymagana jest zatem nienaganna znajomość poleceń systemowych procesora. Pisanie oprogramowania w Asemblerze zajmuje znaczną ilość czasu. Główną zaletą języka jest duża szybkość wykonania gotowego programu.

W rzeczywistości można zastosować prawie każdy język programowania mikrokontrolera. Ale najpopularniejszy jest C/C++. Jest to język wysokiego poziomu, który pozwala pracować z maksymalnym komfortem. Ponadto twórcy C brali udział w rozwoju architektury AVR. Dlatego chipy produkowane przez firmę Atmel są dostosowane specjalnie do tego języka.

C/C++ to harmonijne połączenie możliwości niskiego i wysokiego poziomu. Dlatego możliwe jest wprowadzenie do kodu wstawek w języku asemblera. Gotowe oprogramowanie jest łatwe do odczytania i modyfikacji. Tempo rozwoju jest dość wysokie. W tym przypadku dokładne badanie architektury MK i systemu poleceń procesora nie jest wymagane. Kompilatory C wyposażone są w biblioteki o imponujących rozmiarach, co ułatwia pracę programiście.

Należy zaznaczyć, że wybór optymalnego języka programowania zależy także od sprzętu. Jeśli masz małą ilość pamięci RAM, nie zaleca się używania wysokiego poziomu C. W tym przypadku bardziej odpowiedni jest Asembler. Zapewnia maksymalną wydajność dzięki krótkiemu kodowi programu. Nie ma uniwersalnego środowiska programistycznego, ale większość darmowych i komercyjnych aplikacji może używać zarówno asemblera, jak i C/C++.

Mikrokontrolery PIC

Pierwsze mikrokontrolery PIC pojawiły się w drugiej połowie ubiegłego wieku. Szybkie 8-bitowe chipy firmy Microchip natychmiast zyskały popularność. Architektura Harvarda z dwiema magistralami zapewnia niespotykaną prędkość. Został opracowany w oparciu o zbiór rejestrów, który charakteryzuje się separacją magistrali.

Wybierając język programowania mikrokontrolerów PIC, należy wziąć pod uwagę, że rodzina mikroukładów oparta jest na unikalnej konstrukcji procesora RISC. Symetryczny system poleceń pozwala na dowolny wybór sposobu adresowania i wykonywanie operacji na dowolnym rejestrze. W tej chwili firma Microchip produkuje 5 odmian MK, które są kompatybilne według kodu oprogramowania:

  1. PIC18CXXX (75 poleceń, wbudowany stos sprzętowy);
  2. PIC17CXXX (58 poleceń w formacie 16-bitowym);
  3. PIC16CXXX (35 poleceń, duży zestaw urządzeń peryferyjnych);
  4. PIC16C5X (33 instrukcje, format 12-bitowy, pakiety 18-28 pinów);
  5. PIC12CXXX (wersje z poleceniami 35 i 33, zintegrowany generator).

W większości przypadków mikrokontrolery PIC mają pamięć programowalną jednorazowo. Istnieją droższe modele z kasowaniem Flash lub ultrafioletem. Asortyment liczący 500 pozycji pozwala na dobranie produktu do każdego zadania. Obecnie producent koncentruje swoje wysiłki na opracowaniu wersji 32-bitowych o zwiększonej pojemności pamięci.

Językami programowania mikrokontrolerów PIC są Assembler i C. Do kodowania nadaje się każde zintegrowane środowisko programistyczne (IDE). Programowanie przy ich pomocy jest bardzo wygodne. Automatycznie tłumaczą tekst programu na kod maszynowy. Ważną cechą IDE jest możliwość krok po kroku symulowania działania gotowego oprogramowania. Zalecamy korzystanie ze środowiska programistycznego MPLAB. Został stworzony przez firmę Microchip.

Przed rozpoczęciem pracy w MPLAB-ie zalecamy każdorazowe utworzenie osobnego folderu. Jest to konieczne, aby nie pomylić się w plikach projektu. Interfejs programu jest intuicyjny i nie powinno być z nim żadnych trudności. Do debugowania wykorzystywane są autorskie debugery Pickit, ICD, REAL ICE, IC PROG. Mają możliwość przeglądania zawartości pamięci i ustawiania punktów kontrolnych.

Temat projektowania elektroniki staje się coraz bardziej popularny. Zwracamy uwagę na artykuł, który opowie Ci o mikrokontrolerach dla początkujących.

Jakie są mikrokontrolery?

Na początek należy nakreślić sytuację z mikrokontrolerami. Faktem jest, że produkuje je nie jedna firma, ale kilka na raz, więc istnieje całkiem sporo różnych mikrokontrolerów, które mają różne parametry, różne cechy w użytkowaniu i różne możliwości. Różnią się szybkością, dodatkowymi interfejsami i liczbą pinów. Najbardziej popularni w całym byłym ZSRR są przedstawiciele RIS i AVR. Programowanie mikrokontrolerów AVR i PIC nie jest trudne, co zapewniło ich popularność.

Jak programuje się mikrokontrolery?

Programowanie mikrokontrolerów odbywa się z reguły za pomocą specjalnych urządzeń zwanych programatorami. Programatory można kupić lub wykonać samodzielnie. Ale podczas flashowania mikrokontrolera za pomocą domowego programatora szansa, że ​​​​zamieni się on w „cegłę”, jest dość wysoka. Istnieje inna opcja, którą można rozważyć na przykładzie płytki Arduino. Płytka działa na mikrokontrolerze Atmel i służy do programowania mikrokontrolerów AVR. Na płycie znajduje się już preflashowany bootloader oraz port USB, które pozwalają na bezpieczne flashowanie używanego mikrokontrolera, bez udostępniania użytkownikowi danych, które mogłyby uszkodzić ten sam mikrokontroler. Programowanie mikrokontrolerów dla początkujących nie jest tak trudne, jak mogłoby się wydawać, a przy odrobinie umiejętności i inteligencji pozwoli uniknąć konieczności sięgania po nowy mechanizm.

Różnice sprzętowe pomiędzy różnymi mikrokontrolerami

Wybierając mikrokontrolery, należy zwrócić uwagę na pewne różnice sprzętowe, nawet nie pochodzące z różnych firm, ale także z tej samej gamy modelowej. W pierwszej kolejności należy zwrócić uwagę na możliwość przepisania informacji do mikrokontrolera. Ta funkcja pozwoli ci eksperymentować z jednym MK przez długi czas. Zwróć także uwagę na liczbę pinów z ich przeznaczeniem. Nie zaniedbuj częstotliwości roboczej kryształu, na którym działa obwód: od tego zależy liczba operacji na sekundę, które mikrokontroler może wykonać. Badając te cechy, a także pamięć MK, na początku może się wydawać, że na mikrokontrolerach nie można zrobić nic znaczącego, ale jest to błędna opinia. Pamiętaj, że programowanie mikrokontrolerów dla początkujących nie wymaga na początku najlepszego sprzętu, ale możesz mieć w zapasie coś mocniejszego.

Języki programowania mikrokontrolerów

Do programowania mikrokontrolerów używane są dwa języki: C/C++ i assembler. Każdy z nich ma swoje zalety i wady. Jeśli więc mówimy o asemblerze, to pozwala on zrobić wszystko bardzo subtelnie i sprawnie, jest to szczególnie ważne, gdy nie ma wystarczającej ilości pamięci RAM lub mocy operacyjnej (co jednak zdarza się dość rzadko). Ale studiowanie go i pisanie na nim programów wymaga sporo wysiłku, punktualności i czasu. Dlatego do programowania w oparciu o mikrokontrolery często wykorzystuje się języki programowania C i C++. Są bardziej zrozumiałe, swoim wyglądem i budową są zbliżone do mowy ludzkiej, choć nie przedstawiają jej w pełnym rozumieniu. Mają też bardzo dobrze rozwiniętą funkcjonalność, dzięki której można łatwo współdziałać ze sprzętem, wyobrażając sobie, że jest to tylko element programu. Mimo wszystkich oczywistych zalet, w C i C++ tworzy się bardziej obszerne programy niż w asemblerze.

Ponadto w niektórych przypadkach, gdy wykorzystywana przestrzeń operacyjna jest krytyczna, języki te można łączyć. Prawie wszystkie środowiska programistyczne dla C i C++ mają możliwość instalowania w programie wstawek asemblera. Dlatego jeśli pojawi się problem w krytycznym obszarze, można napisać wkładkę montażową i zintegrować ją z oprogramowaniem mikrokontrolera, a samo oprogramowanie, a raczej jego większość, można napisać w C lub C++. Programowanie mikrokontrolerów w SI jest łatwiejsze, dlatego wiele osób wybiera te języki. Ale ci, którzy nie boją się trudności i chcą zrozumieć specyfikę działania sprzętu, mogą spróbować swoich sił w języku asemblera.

Rozstające się słowa

Jeśli chcesz poeksperymentować świetnie. Radzimy jedynie uzbroić się w cierpliwość i wytrwałość, a wtedy wszelkie cele postawione przed wynalazcą okażą się wykonalne. Programowanie mikrokontrolerów dla początkujących i dla doświadczonych osób wygląda inaczej: to, co dla początkujących jest trudne, dla doświadczonych jest rutyną. Najważniejsze jest, aby pamiętać, że wszystko, co nie jest sprzeczne z prawami fizyki, jest wykonalne i możliwe do rozwiązania.

    Nowe zakupy Pokaż więcej Ukryj

    10.07.2019: Żyj pozytywnie – usuń samokrytykę. Witalność. Zaufanie

    10.07.2019: Zarobki od 50 tysięcy rubli na programach partnerskich z gwarancją 200% - VIP

    09.07.2019: Zarobki od 50 tysięcy rubli w programach partnerskich z gwarancją 200%.

    09.07.2019: Medycyna wielowymiarowa. Samodiagnoza i samoleczenie [Zamknięte]

    09.07.2019: Wycior do czyszczenia

    09.07.2019: (Powtórz) Rodzaj czyszczenia

    09.07.2019: Wysokie wibracje. Dla kobiet. Zamknięte.

    09.07.2019: [Powtórz] Rysunki bio-wegetarium słonecznego o powierzchni 64m2. (SBV-Mini)

    08.07.2019: 10-100-1000 PRZEJŚĆ DZIENNIE Z YOUTUBE

    07.07.2019: Wypędzenie czarnych sił i uzdrowienie ciała

    06.07.2019:

    05.07.2019: Długoterminowy trening percepcji pozazmysłowej (Aleksiej Pokhabov)

    25.06.2019: Nie kupuj trucizn w pięknych opakowaniach (Elena Bakhtina)

    24.06.2019: Kurs z żywienia (V. Dadali)

    23.06.2019: Najlepszy rok w Twoim życiu (Elizaveta Babanova)

    22.06.2019: Numerologia jako zawód. Jesteśmy z matrixa. Książka 1

    06.06.2019:

    04.06.2019:

    30.05.2019: [Lalka] [Powtórz] Pluszowy dolar

    28.05.2019: Medycyna wielowymiarowa. Zawał mięśnia sercowego[Zamknięte]

    22.05.2019: Rysunki bio-wegetarium słonecznego o powierzchni 64m2. (SBV-Mini)

    21.05.2019: Podstawowy kurs tworzenia lalek plastikowych

    20.05.2019: Retusz grafiki strumieniowej

    20.05.2019:

    20.05.2019:

    20.05.2019: 2 miliony miesięcznie na sprzedaży w studio. (Andriej Sazonow)

    29.04.2019: Układ hormonalny - (Sesje) [Nadezhda Kolesnikova]

    29.04.2019: Przywrócenie nerek i układu moczowego [Nadezhda Kolesnikova]

    19.04.2019:

    19.04.2019:

    19.04.2019: Owies nagi, ostropest plamisty, technologia dezynfekcji i kiełkowania nasion. (Frołow Yu.A)

    17.04.2019: [Powtórz] Licencja bez problemów

    17.04.2019: Lekcja obróbki zdjęć (Maria Strutinskaya) 2019

    17.04.2019: Yu.A. Frolov - 4 na 4 od A do Z

    17.04.2019: Frolov Yu.A. Produkt informacyjny nr 14 - Seminarium - Przetrwanie w sytuacjach ekstremalnych, przygotowanie, zaopatrzenie...

    12.04.2019: Super agent czyli cała Metoda Aleksandra Sankina w 24 lekcjach online

    05.04.2019: Nie ma dnia bez linii (Vera Arsentyeva, Marina Pyatiletova)

    04.04.2019: Marka osobista i Instagram (Anna Roleva, Veronica Yurina)

    04.04.2019: Zaangażowanie w hakowanie [Lilia Nilova]

    02.04.2019: Przewodnik po układzie responsywnym Bootstrap 4

    30.03.2019: Montaż w Davinci Resolve: szybki start (Dmitry Larionov)

    20.03.2019:

    20.03.2019:

    18.03.2019: Grupa mistrzowska: Lingwistyka

    18.03.2019: AVITO-BOOM - system zarabiania pieniędzy na Avito już od 3500 rubli/dzień na maszynie! (Aleksander Pisarewski)

    18.03.2019:

    26.02.2019: Jeffrey Stevens – Weekendowe warsztaty hipnozy

    14.02.2019:

    01.02.2019: Uzdrawiający dotyk. Instytut Kinezjologii (John Tee, Matthew Tee)

    27.01.2019: 3 książki Maxima Batereva „45 tatuaży osobowości, menedżera, sprzedanych…”

    22.01.2019: Webinaria na SQUIRT

    18.01.2019:

    14.01.2019:

    09.01.2019:

    05.01.2019:

    26.12.2018:

    15.12.2018: Zatrzymaj przeziębienie: jak zwiększyć odporność (Margarita Levchenko)

    15.12.2018: Zarabiaj, ucząc, jak zarabiać na zakładach (Artem Dosman)

    Gościu, wszedłeś do klubu Reskladchik. U nas jest 10 razy taniej niż w Hurtowni. Teraz nie możesz kupić produktu za 200 rubli w Magazynie, ale u nas w Restockerze za jedyne 20 rubli.

    Ukryj reklamę
  1. Potrzebny organizator Pokaż więcej Ukryj

    06.07.2019: Open Real Estate – wersja Ultimate

    06.06.2019: Chcę POKONAĆ! 2.1 + aktualizacje do 2.2 i 2.3

    04.06.2019: Pakiet dokumentów niezbędnych do pomyślnego funkcjonowania ośrodka dla dzieci

    20.05.2019: Samodzielny kurs wideo dotyczący usuwania wgnieceń za pomocą narzędzi Ultra Dent w języku rosyjskim (3 płyty DVD)

    20.05.2019: Kurs wideo do samodzielnej nauki usuwania wgnieceń z...

    19.04.2019: [powtórz] 3-betowane pule. Udoskonalamy naszą wiedzę

    19.04.2019: Poker. Dziewiąty pakiet od freestyle'u

    17.04.2019: [Powtórz] Licencja bez problemów

    20.03.2019: Klub trzech nauczycieli - 38 kursów i MK (Aleksander Ivanitsky) (Alena Ryabchenko) (2016)

    20.03.2019: Marketing internetowy dla klinik – 16 książek

    18.03.2019: [Powtórz] Dwa kursy według metodologii V.F. Shatalova dla szkoły podstawowej

    14.02.2019: Trening ciała (Natalia Ładini)

    22.01.2019: Webinaria na SQUIRT

    18.01.2019: Wygodna forma II

    14.01.2019: [Powtórz] Wszystkie treningi i ćwiczenia Trainerskaya.RU

    09.01.2019: [Specjalista] M20345 - 1: Administracja Exchange Server 2016

    05.01.2019: Centrum Psychologii Stosowanej - Wyznaczanie celów

    26.12.2018: [Nowość] Podręczniki dla I roku studiów w Akademii Kinezjologii Stosowanej Vasilyeva L.F.

    11.12.2018: [Specjalista] Profesjonalny projekt w programie CorelDRAW

    27.11.2018: Lekcje Wilcom KnittingStudio e1.5

    27.11.2018: Ograniczające przekonania

    07.11.2018: Zobacz więcej na..(Druga, „słoneczna” część programu Simoron)

    07.11.2018: Biznes jako aktywo (zakup gotowego biznesu bez inwestycji) Natalya Zakheim LiKPro

    07.11.2018: II stopień ShK (nowy)

    28.10.2018: [Technologia] Elastyczny kamień

    21.10.2018: System przyciągania masowego przepływu klientów do sektora budowlano-remontowego IndexHunter

    21.10.2018: Wszystkie książki Alexa Lesly’ego

    16.10.2018: Szyjemy zabawki edukacyjne własnymi rękami

    16.10.2018: [Powtórz] Kurs uniwersalny „Otwarcie” szkoły pomysłowych rozwiązań – klasa pomysłowa

    16.10.2018: Ozdoba brwi (Natalia Shik)

    26.09.2018: Kalkulator kosztów strony internetowej. Rozszerzenie Kreatora stron internetowych

    15.09.2018: Sekrety udanej komunikacji, aby osiągnąć szczęśliwe życie (Julia Lanske)

    10.09.2018: Współpraca - dla organizatorów oprogramowania (PC).

    10.09.2018: [Powtórz] Rozwijanie naturalnych zdolności dziecka w 10 minut dziennie

    03.09.2018: Aktywacje Trzech Generałów CMDC

    25.08.2018: Somatypologia. Czytanie ludzi według typu budowy ciała, identyfikowanie swoich mocnych stron według typu budowy ciała.

    25.08.2018: Zestaw 5 dań za połowę ceny. R. Abdullina

    09.08.2018: Skrypt automatycznej wymiany Premium Exchanger

    02.08.2018: Kurs transformacji twarzy prowadzony przez Elenę Bakhtinę

    02.08.2018: Shamoyan - Uczę się kochać siebie

    02.08.2018: Szablon Bonono

    27.07.2018: Archetypowy tarot

    24.07.2018: Człowiek bardzo poszukiwany (Egor Szeremietiew)

    24.07.2018: Metaforyczne karty skojarzeń – talia siedlisk

    21.07.2018: Magia Maghrebu

    10.07.2018: „Turbo Cash Flow firmy Kiyosaki – STANDARD”

    01.07.2018: Angielski z Piggy i... (5 płyt DVD)

    23.06.2018: Ponad 8500 źródeł dla Photoshopa

    17.06.2018: Ludzie i bogowie (S. Sawczenko)

    14.06.2018: Strona służąca sprzedaży waluty do gry

    09.06.2018: Jesteśmy dorośli i nasi rodzice

    27.05.2018: Kompletna seria kursów mistrzowskich na temat szycia zabawek

    27.05.2018: Talpis i Moshinskaya: szkolenie w pracy z metaforycznymi mapami skojarzeniowymi

    16.05.2018: [Powtórz] Dochodowy beton, biznes za 1000 dolarów

    13.05.2018: Poradnik krok po kroku jak samemu zrobić kuchnię i biznes w kuchniach.

    02.05.2018: Szkolenie podstawowe prowadzone przez Darię Abachtimową „POZA ŚWIADOMOŚCIĄ” 1.0

    27.04.2018: easyReservations Premium - być może najlepsza wtyczka rezerwacyjna

Kurs skierowany jest przede wszystkim do osób, które interesują się tematyką elektroniki, a w szczególności programowania mikrokontrolerów, a także tych, które pracują w tym obszarze, ale potrzebują podnieść swoje umiejętności do poziomu zaawansowanych technologii.
Kurs jest w dużej mierze przeznaczony dla studentów, którzy są jeszcze słabo zaznajomieni z tym tematem i chcą przestudiować wszystko w sposób spójny i szczegółowy. Jednak profesjonalni inżynierowie elektronicy, którzy pozostają w tyle za najnowszymi osiągnięciami, również mogą znaleźć mnóstwo informacji pozwalających udoskonalić swoje umiejętności.
Po pomyślnym ukończeniu szkolenia student będzie potrafił pisać programy wykorzystujące większość możliwości współczesnych mikrokontrolerów. Poza tym dobra baza pozwoli szybko przestudiować kontroler o zupełnie innej architekturze.

Postęp szkolenia:

Na kursie znajduje się szczegółowy materiał w formie tekstowej, który lektor przekaże uczniowi w celu dodatkowego przygotowania i utrwalenia zdobytej wiedzy.
Kurs „Programowanie mikrokontrolerów w języku C” zawiera dużą liczbę przykładów. A na szkoleniu w ramach pracy domowej rozrysujemy obwody i zaprogramujemy mikrokontroler do sterowania różnymi urządzeniami zewnętrznymi.
Przy okazji uczeń sam może zasugerować, co chce wdrożyć w przyszłości, a nauczyciel dostosowuje tok nauki tak, aby jak najbardziej przybliżyć ucznia do obranego celu.

Omawiane tematy:

  1. Wprowadzenie do tematu programowania mikrokontrolerów
  2. Generatory zegarów
  3. Porty we/wy
  4. Przerywa
  5. Timery
  6. Moduł przechwytywania
  7. Moduł porównawczy
  8. UART
  9. Praca z wyświetlaczem graficznym

Podobnych kursów jest prawie kilka i wszystkie są w formacie off-line. Pod okiem lektora przejdziesz indywidualne szkolenie według autorskiego programu.
Dzięki zajęciom on-line będziesz mieć stały kontakt z lektorem, który wszystko wyjaśni, doradzi, a także da rekomendacje dotyczące optymalizacji programów i wskazówki dotyczące wykorzystania podzespołów elektronicznych. W przyszłości nie jest wykluczona wspólna praca nad prawdziwymi projektami z zakresu elektroniki.

Aby rozpocząć ten kurs, student musi znać podstawowe pojęcia języka programowania C i umieć je zastosować.
Jeśli uczeń nie zna języka C, to najpierw trzeba ukończyć kurs: „Podstawy programowania w języku C” (możesz mieć tego samego nauczyciela, ale w praktyce jest jeszcze lepiej), a po pomyślnej nauce podstaw, możesz zacząć uczyć się programowania mikrokontrolerów.
Jeśli uczeń posiada znajomość języka C, to nauczyciel na pewno sprawdzi tę wiedzę i jeśli zajdzie potrzeba dogłębniejszego zrozumienia niektórych tematów, wówczas zaleci, które tematy należy powtórzyć.