Odpowiedzi (11)
- Sortuj według
- Ostatnio dodane
- Najwyżej ocenione
- Sortuj od najstarszych
-
-
hmm... który jest najbardziej skomplikowany, to nie wiem. Może Forth albo Fortran ;) Ale to też mało popularne języki.
A wydajnośc, to chyba język maszynowy daje największe możliwości, choć chyba nie chciałbyś w asemblerze pisać dużych programów.
W mojej ocenie "C" to podstawa i od tego cała reszta.
Choć nie jest to najłatwiejszy język, to najbardziej uniwersalny.
Na początek fajne są Arduino i kiedyś popularny Bascom. Można je opanować w jeden, dwa dni. Oczywiście biegłość wymaga sporo więcej czasu.
Ich wadą jest to, że nabywa się złych nawyków, dlatego polecam zaczynać od C.
To klasyka, bardzo uniwersalna.-
@boss:Przy nauce języka C z doświadczenia powiem, żeby szczególną uwagę przyłożyć do operacji na pamięci oraz struktur danych, bo to wiedza z tych dwóch rzeczy się najbardziej przyda przy debugowaniu aplikacji. Co do arduino to zgodzę się że jest na tyle proste że właśnie pielęgnuje złe nawyki od samego początku - dlatego wg mnie lepszym pomysłem jest zabawa z STM oraz środowiskiem Cube IDE, które nie wymaga od nas klepania dziesiątek linijek kodu aby skonfigurować jakieś bebechy płytki, tylko możemy to zrobić w konfiguratorze, którzy jednocześnie upraszcza sprawę oraz wskazuje jakie parametry są istotne przy działaniu np UARTa, I2C, Timerów, PWM czy ADC.
-
-
Na język najlepiej jest patrzeć jako na narzędzie, dzięki któremu będziesz w stanie zadać urządzeniu daną funkcjonalność, więc "najlepszy język" to pojęcie bardzo względne. Tą samą funkcjonalność jesteś w stanie zadać używając większości z nich. Wiadomo, że w jednym języku będzie to mniej, a w drugim bardziej skomplikowane. Więc nie ma to za bardzo znaczenia, którym się posłużysz. Najważniejsze jest to, żebyś wiedział w jaki sposób daną funkcję zrealizujesz. Jeśli to załapiesz, to poznanie składni każdego kolejnego języka powinno być dla ciebie jedynie formalnością.
Najbardziej popularnymi językami, które stosuje się do programowania mikrokontrolerów są C i asembler. Później C++, python i java.
Z powyższych najbardziej optymalnym i pozwalającym na użycie najmniejszej ilości zasobów jest asembler, ale niestety nie jest tak intuicyjny jak pozostałe. C jest dość uniwersalny, bo przy jego pomocy zaprogramujesz niemal każdy mikrokontroler.Gdybym miał ci doradzić, to zabawę poleciłbym ci zacząć od C, C++ lub pythona. Ciekawym wyborem zwłaszcza dla początkującego jest język Arduino, który mówiąc najprościej jest czymś w rodzaju uproszczonego C. I jeśli np. znasz już podstawy programowania w C++ lub C, to nie powinien być on dla ciebie większym wyzwaniem. Niestety nie zaprogramujesz przy jego pomocy każdego mikroprocesora.
-
@Zhandos62: A czy język C lub Python posiada jakieś ograniczenia, z którymi trudno sobie poradzić i stosuje się wtedy inny? Spotkałeś się kiedyś z takim przypadkiem?
-
@Pysiak: Co do wad pythona to skompiluje Ci on nawet program z błędem i da nieoczekiwany wynik. W C++ np. program z błędem się nie skompiluje. Ma on też ograniczoną wydajność, choć chyba dla mikroprocesorów nie powinno to mieć takiego znaczenia, ale dlatego większość gier np. nie jest w pythonie a raczej w C++.
Co do języka C to jest on dość okrojony jeśli chodzi o wbudowane biblioteki. Również znalazłem informację, że jest on problematyczny jeśli chodzi o zarządzanie pamięcią. -
@Sandro1812: Czyli tak naprawdę nie ma złotego środka, trzeba uczyć się wszystkiego :)
-
@Pysiak: Jak się nauczysz C, to prawie jakbyś znał C++, a w tym jest większość aktualnie programowana.
Python też jest atrakcyjny, bo jest o wiele łatwiejszy i ten sam program napiszesz w mniejszej ilości linijek kodu.
Złoty środek? Faktycznie nie ma. Wszystko ma swoje wady i zalety. Wybór języka pewnie zależy od tego, co na czym Tobie zależy/ co chcesz programować :) -
@Pysiak: Nie powiedziałbym, że trzeba od razu znać każdy. Solidna znajomość jednego z nich już powinna dać ci bardzo dużo możliwości. ;)
-
@Zhandos62: Prawdopodobnie nauczenie się jednego bardzo dobrze da o wiele więcej możliwości.
-
@Pysiak:zgadzam się, tym bardziej, że opanowanie C daje solidną bazę do nauki pozostałych, np Pythona czy Javy.
-
-
Czytaj także:
Niedziałający mikrokontroler
Cześć. Niedawno zakupiłem zestaw chińskiego Arduino z aliexpress dl
Chińskie podróbki mikrokontrolerów
Witam,wielu z nas pewnie miało doświadczenia z tańszymi zamiennikam
Automatyk za granicą - języki obce
Witam!jaki waszym zdaniem jest niezbędnik języków obcych poza angie
Co to jest PWM i jakie ma zastosowania w elektronice?
Poznaj tajniki modulacji szerokości impulsu (PWM) i odkryj, jak klu
Ukryte funkcje ESP32 - czy mogą zagrozić miliardowi urząd
W popularnym układzie ESP32 wykryto nieudokumentowane funkcje, któr
Flipper One oficjalnie zapowiedziany. Nowe urządzenie ma
Twórcy Flipper Zero oficjalnie pokazali projekt Flipper One, ale ni
Generalnie najbardziej zależy nam aby układ był wydajny więc logicznym wyborem jest nauka języka C. I faktycznie jest on najczęściej spotykany. Co prawda jest jeszcze C++, jednak tak naprawdę jest to język C z trochę inną składnią i wzbogacony i paradygmat obiektowości, który jednak w mikrokontrolerach prawie w ogóle nie jest używany.
Co więcej, nauka C niejako wymusza na nas zaznajomienie się z podstawami działania układów mikroprocesorowych, ze szczególnym akcentem na operacjach na pamięci, zarówno statycznie (przez stos), jak i dynamicznie (przez stertę). Oczywiście jest jeszcze ASM ale to raczej dla totalnych maniaków samych bebechów tych układów :).
No i ostatnio też coraz bardziej modny staje się Rust, który jest niemal tak samo wydajny jak C, jednak w odróżnieniu od C tutaj nie musimy się przejmować błędami programu związanymi z dostepem do pamięci - sam język jest wyposażony w tzw. garbage collector który usuwa z pamięci programu wcześniej zaalokowaną a już nieużywaną pamięć (co w przypadku programów pisanych w C jest często wynikiem fakapów, gdy jakiś wątek albo funkcja próbują odczytać pamięć do której nie mają dostępu). Wiem natomiast że ten język nie jest aż tak intuicyjny jak C i wymaga zupełnie innego podejścia jednak uważam że dla samej ciekawości warto, chociaż tutaj wiele nie podpowiem bo zwyczajnie się go jeszcze nie uczyłem :).