Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Pytanie odnosnie ilosci jezykow programowania na mikrokontro

lewek32 10 Oct 2010 12:42 1953 18
Computer Controls
  • #1
    lewek32
    Level 9  
    Witam,
    mam do was wszystkich pytanie:
    w ilu jezykach mozna programowac na mikrokontrolery?Niedawno kupilem ksiazke i autor w niej uczy programowac w czterech jezykach : pascal, bascom, c , asembler.
    Ale wchodze na google a tu mi wyskakuje programowanie plikow hex w visual basicu!!!!Sami sobie wpiszcie w google "visual basic i hex" to wam wyskoczy.
    I teraz mam pytanie czy rzeczywiscie da sie programowac w visual basicu na mikrokontrolery? A moze sa jeszczew jakies jeszcze inne jezyki oprocz tych 4(moze 5)??
    Pozdrawiam i posze o odpowiedz.
  • Computer Controls
  • #2
    tymon_x
    Level 30  
    Java, np. Jazelle na mikrokontrolery ARM. NanoVM na AVR, podstawowa konfiguracja w C. No i oczywiście nieśmiertelny C++, ogólnie większość RTOS'ów jest pod niego napisana (?). Jeszcze są jakieś hybrydy, w stylu pseudo-kodowania drabinkowego czy coś takiego. Na pewno dużo więcej się znajdzie (;
  • #3
    gaskoin
    Level 38  
    W matbalie się też da, w LabView, coś ala języki LAD, czy ST. Generalnie chyba we wszystkim można
  • #4
    tmf
    Moderator of Microcontroller designs
    Myślę, że nie można wrzucić wszystkich mikrokontrolerów do jednego worka. Na takim ARM9, czy AVR32 są chyba wszystkie możliwe języki programowania, chociażby dlatego, że odpalisz na nich GNU/Linux, a pod tym systemem masz praktycznie wszystkie kompilatory. Zresztą specjalną wersję MS Windows też na tym odpalisz, a np. .NET zawiera wsparcie dla systemów embedded. Z drugiej strony mamy maleństwa typu 8-bitowe AVR, czy PIC, na których istnieją chyba tylko cross-kompilatory. Tu wybór jest ograniczony, chociaż jest C/C++, Basic, Pascal, oczywiście assembler, jakieś języki drabinkowe, Ada, Fortran, i różne inne egzotyczne kompilatory. Ale w praktyce liczy się asembler i C/C++.
  • #5
    McMonster
    Level 32  
    Koledze raczej chodzi o kompilowanie na konkretną platformę, więc nieistotne jest, że na jakąś platformę jest Linux, który wprawdzie ma kompilatory wielu języków, bo te kompilatory muszą jeszcze obsługiwać na przykład AVR32.
  • Computer Controls
  • #6
    tmf
    Moderator of Microcontroller designs
    Jednak jest to istotne. Łatwiej zbudować kompilator natywnie na daną platformę, niż robić cross-kompilację. Z drugiej strony ponieważ istnieje port GNU/Linux i na AVR32 i na ARMy, więc automatycznie przeportowane są różne kompilatory i interpretery. Interpretery (np. PHP, Python) z definicji w tym układzie będą działać.
  • #7
    lewek32
    Level 9  
    dzieki wszystkim za odpowiedzi.Ale mi chodzi o pod procesor avr. np. attiny2313 albo atmega 8 .Nie pod system operacyjny ktory da sie zainstalowac na systemie operacyjnym tylko pod sam procesor.(tu chyba chodzi o 8 bitowe np.attiny2313, atmega8 itp)
    Sam mikrokotroler nie ma nic na poczatku zainstalowanego ten 8 bitowe wiec czemu mowa o javie czy pythonie??
  • Helpful post
    #8
    marek_Łódź
    Level 36  
    lewek32 wrote:
    dzieki wszystkim za odpowiedzi.Ale mi chodzi o pod procesor avr. np. attiny2313 albo atmega 8 .Nie pod system operacyjny ktory da sie zainstalowac na systemie operacyjnym tylko pod sam procesor.(tu chyba chodzi o 8 bitowe np.attiny2313, atmega8 itp)
    Sam mikrokotroler nie ma nic na poczatku zainstalowanego ten 8 bitowe wiec czemu mowa o javie czy pythonie??


    Dla AVR - asembler, C, PASCAL, JAVA, FORTH, BASCOM
  • #9
    lewek32
    Level 9  
    Bardzo dziekuje za odp.Dalem Ci ez mi pomogles.Ale przeciez bylo cos w google ze jest visual basic dla avr.Moze sie myle?
  • #10
    McMonster
    Level 32  
    Ja widzę różne strony na temat komunikacji (np. przez RS232), a jeśli chodzi o plik z rozszerzeniem .hex, to takie samo rozszerzenie może mieć plik w zupełnie innym formacie, więc niekoniecznie chodzi o plik ze wsadem do mikrokontrolera.
  • Helpful post
    #11
    marek_Łódź
    Level 36  
    lewek32 wrote:
    Bardzo dziekuje za odp.Dalem Ci ez mi pomogles.Ale przeciez bylo cos w google ze jest visual basic dla avr.Moze sie myle?
    Nie ma takiej możliwości VB jest dość mocno związany ze środowiskiem MS Windows i wymaga zasobów znacznie przekraczających możliwości prostego ośmiobitowca z typowymi peryferiami. Jeśli zależy nam na BASICu na AVR, to musimy się zadowolić BASCOMem

    http://pl.wikipedia.org/wiki/Visual_Basic
    http://pl.wikipedia.org/wiki/Bascom
  • Helpful post
    #13
    marek_Łódź
    Level 36  
    lewek32 wrote:
    Dobra,dobra ale
    https://www.elektroda.pl/rtvforum/topic219676.html
    Temat linku: "ikrokontrolery AVR i VB.net - jak zacząć je stosować ?"
    I co teraz?Da sie programowac mikrokontrolery w vb.net czy nie?Bo ja juz nic nie wiem.
    Prosze o odpowiedz.
    Pozdrawiam

    No to już się rozumiemy. Pod wskazanym linkiem mamy system sterowania z nadrzędnego peceta sterownikami mikroprocesorowymi. W tym układzie sterowniki mają zaszyty własny soft komunikacyjny i sterujący (napisany w C, asemblerze czy BASCOMie), w którym nie musimy grzebać (firmware), natomiast komputer nadrzędny PC możemy programować w dowolnym języku (w tym przypadku VB).

    Tyle że nie jest to programowanie mikrokontrolerów w VB tylko ich sterowanie z aplikacji PC napisanej w tym języku. Zastosowanie nadrzędnego PC może być wygodne w większych systemach sterowania (chociażby dlatego, że nie musimy programować mikrokontrolerów, które są zaprogramowane przez producenta systemu), czy akwizycji danych, natomiast w prostych zastosowaniach (migająca dioda) nie da się.

    Pozdrawiam
  • #14
    tmf
    Moderator of Microcontroller designs
  • #15
    marek_Łódź
    Level 36  
    tmf wrote:
    Spotkałem się jeszcze z wykorzystaniem samego IDE z VB do pisania programów na AVR. Ale to oczywiście też nie jest programowanie w VB.
    Jeszcze inny sposób to obszycie urządzenia mikroprocesorowego funkcją emulacji klawiatury PC (np.HID). W ten sposób są zrealizowane np niektóre suwmiarki elektroniczne, które po naciśnięciu np. pedału wrzucają dane bezpośrednio do kolejnych komórek EXCELA, czyli praktycznie bez żadnego wysiłku programistycznego użytkownika realizują akwizycję danych na stosunkowo "wysokim" poziomie, który dalej możemy obszyć własną aplikacją w VBA (EXCEL), czy w JAVA (jeśli używamy OO).
  • Helpful post
    #17
    marek_Łódź
    Level 36  
    C# nie wchodzi w grę z przyczyn tych samych o VB. Po prostu nie da się odpracować środowiska NET na małym mikrokontrolerze 8-bitowym (teoretycznie możemy to sobie wyobrazić, ale zrealizować...)

    O JAVA wspominaliśmy wyżej. Z JAVA jest lepiej, bo z założenia ma chodzić też na sprzęcie mobilnym, więc po wykrojeniu funkcji graficznego interfejsu, ewentualnie przerobieniu na własny komputerek AVR, da się zrobić wersję midletową, czego dowodem są zarówno przenośne urządzenia (komórki), jak i dostępna maszyna JAVA na AVR

    http://www.harbaum.org/till/nanovm/index.shtml

    Tematyka programowania uC w JAVA: https://www.elektroda.pl/rtvforum/topic1178918.html

    Inna sprawa, że ośmiobitowa implementacja JAVA jest stosunkowo mało efektywna (mamy do czynienia z interpreterem), więc pisanie w tym aplikacji silnie uzależnionych czasowo (szybkie sterowania lub zbieranie danych, czy nawet rozbudowany interfejs graficzny) może być niemożliwe. Natomiast oczywistą zaletą jest możliwość puszczenia tej samej aplikacji na komórce i naszym mikrosterowniku (oczywiście jeśli nasza maszyna JAVA na AVR odpracuje stosowny standard MIDP).

    Żeby było jeszcze śmieszniej, mając zaimplementowaną VM (maszynę wirtualną) JAVA, możemy programować również w Midlet Pascalu (niestety ten ciekawy projekt został zaniechany, a główna strona została zlikwidowana, niemniej daje się go ściągnąć z sieci).
  • #18
    lewek32
    Level 9  
    ok dzieki za odp.Czyli male podsumowanie:
    programowac avr mozna w : kompilowane w : assembler, c , bascom , pascal.A jezyki interpretowane to java tak?? Zapomnialem o ktorys??
  • #19
    marek_Łódź
    Level 36  
    lewek32 wrote:
    ok dzieki za odp.Czyli male podsumowanie:
    programowac avr mozna w : kompilowane w : assembler, c , bascom , pascal.A jezyki interpretowane to java tak?? Zapomnialem o ktorys??
    FORTH to też interpreter, podobnie jak Midlet Pascal interpretowany przez VM JAVA.
    Generalnie podział na języki kompilowane i interpretowane może zawieść w przypadku, gdy np. kompilator dołącza większy pakiet run-times, który de facto może się okazać fragmentem maszyny wirtualnej (np. kalkulator stosowy).