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:
Jak zaprogramować mikrokontroler, żeby sterował układem m
Jak zaprogramować mikrokontroler, żeby sterował układem mechaniczny
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
Jaki zasilacz do komputera dobrać?
Wybór odpowiedniego zasilacza do komputera jest niezwykle istotnym
Co to jest PWM i jakie ma zastosowania w elektronice?
Poznaj tajniki modulacji szerokości impulsu (PWM) i odkryj, jak klu
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 :).