Przeczytano 289 razy

Jaki język do Mikrokontrolerów?

Dzień dobry, zaczynam zabawę z programowaniem Mikrokontrolerów i zastanawiam się jakie jest najlepszy język do programowania, pod względem skąplikowania oraz wydajności?

Odpowiedzi (8)

  • 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.

  • Odpowiedź oznaczona przez autora jako pomocna

    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.

      • Wyświetl dodatkowe odpowiedzi (3)