logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jaki język programowania wybrac?

Sinistra 15 Lut 2008 11:13 5938 19
  • #1 4806819
    Sinistra
    Poziom 14  
    Witam,
    Czy ktoś mógł by mi doradzic na ten temat? Chciałbym programowac większośc układów opartych na atmel; attiny; atmegi itp. Nie mam za dużych zdolności, ale szybko się uczę. Jednym z moich planów to zrobic zegar widmowy.
    W czym pisac takie programy? Bo czytałem, że programowanie a pisanie to różne sprawy (na forum elektrody czytałem to).

    Sinistra


    P.S. Chciałbym też kiedyś zrobic LED cube z rgb leds. Oczywiście nie tylko te rzeczy chce zrobic, kiedyś przyjdą inne.


    P.S.S. do admina: moja klawiatura nie robi 'c z kreseczką' :-)
  • #2 4807004
    KeinXor
    Poziom 24  
    Witam,
    nie wiem czy miałeś styczność już wcześniej z programowaniem a jeśli tak to z jakim językiem programowania, nie chciał bym sugerować Ci wyboru języka bo ja uważam że to kwestia gustu/preferencji programisty, w tej chwili każdy dostępny język(kompilator języka) na mikrokontrolery posiadają identyczne możliwości czy będzie to pascal czy c czy też basic.
    Jeżeli robiłeś coś wcześniej w Turbo Pascalu to wydaje mi sie naturalnym posunięciem wybór mikropascala i ma to się do innych języków.
    Duży wybór kompilatorów z najpopularniejszymi językami masz tu:
    http://www.mikroe.com/en/compilers/
  • #3 4808781
    Sinistra
    Poziom 14  
    Miałem już stycznośc z Pascal'em, poruszałem się w nim dośc zwinnie, ale czytając forum jakoś tak intuicyjnie spodobał mi sie BASCOM (nie wiem czemu). Czy ja mogę programowac wszystkie mq w BASCOMIE, czy każdy mq jest do innego języka?

    Dziękuję za odpowiedź, Sinistra
  • #4 4808891
    KeinXor
    Poziom 24  
    Witam,
    bascom-a możesz wykorzystać do oprogramowania układów AVR/8051.
    Jeżeli znasz składnie pascala proponuje poświecić chwile na instalacje i przejrzenie przykładów mikropascala, myślę że przypadnie Ci do gustu.
    Pozdrawiam
  • #5 4811488
    Konto nie istnieje
    Konto nie istnieje  
  • #6 4812937
    lord_dagoth
    Poziom 25  
    Ja osobiście polecam Ci nauke C, szczególnie podstaw z kursu http://www.patron.ehost.pl/patron/index.php (musisz się zalogować).

    Bascoma nie polecam jeżeli miałeś już stycznąość z prgramowaniem. Ja z Pascala przeszedłem do C++ ;)
  • #7 4820586
    krzkomar
    Poziom 25  
    Na ATmegi to bardzo wygodny jest C.
    Na ATtiny tylko asembler. Kontrolery te posiadają bardzo płytki stos sprzętowy(np ATtiny12L ma 3 poziomowy) i brak RAM-u (tylko rejestry). Dodatkowo, jak program ma być szybki to tylko asembler.
    Bascoma sobie daruj, to zabawka i na dodatek wyrabia złe nawyki.
  • #8 4822419
    KeinXor
    Poziom 24  
    krzkomar:arrow: co twoim zdaniem jest złym nawykiem ?
    ----edit----
    pytam z czystej ciekawości.
  • #9 4822913
    krzkomar
    Poziom 25  
    KeinXor napisał:
    krzkomar:arrow: co twoim zdaniem jest złym nawykiem ?
    ----edit----
    pytam z czystej ciekawości.


    1. goto
    2. gosub
    3. walenie wszystko w globale
    4. "wszystko się robi samo", a jak się nie robi to jest lament, zgrzytanie zębami i bicie głową w mur
    5. trudność w późniejszym przestawieniu się na coś normalnego

    Ten język, jak i wszystkie Basic-e jest strasznie "bałaganiarski".

    PS
    Piszę to po doświadczeniach z osobami, które w tym pisały.
  • #10 4823319
    KeinXor
    Poziom 24  
    Piszesz pierdoły,
    @1 i @2 instrukcja skoku tez jest w c, wiec pisanie w c też wyrabia złe nawyki :!: (według twojej logiki rozumowania)
    @3 "walenie wszystko w globale" a co w c nie można... (też kolejny bezsens)
    @4 tego całkowicie nie rozumie...
    @5 z tego wnioskuje że jedyny normalny (twoim zdaniem) język to c

    Nie chciał bym cię oceniać po tych farmazonach co wypisujesz...

    Język programowania jest "JĘZYKIEM" służy do opisu pewnych stanów, zależności. I tak jak pisałem wcześniej nie ma wyższości jednego nad drugim, jeżeli założenia/problem da się opisać w wybranym języku jest on odpowiedni. A jeśli chodzi o możliwości różnych kompilatorów języka to inna kwestia.

    Nie chcę tu prowadzić kolejnej już milionowej wojny, na temat co za język jest najlepszy na świecie...
    Jeżeli przykładowemu Janowi Kowalskiemu dobrze programuje się w Pascalu i ma do tego sensowne kompilatory to nie można mu wmawiać że
    c jest najlepszy jak Janowi nie podoba sie składnia c a sam język nie daje mu nic więcej.
    No to tyle.
    Pozdrawiam trzeźwo myślących forumowiczów i czytelników.
  • #11 4823730
    lord_dagoth
    Poziom 25  
    Dochodzi jeszcze kwestia profesjjonalizmu i wielkości projektu.

    Kod wynikowy w bascomie będzie duuuuuuużo większy niż kod spełniający te same funkcje napisany w C.

    Wiadomo że do prostych zastosowań amatorskich można bez problemustosować bascoma, bo jest on łatwiejszy i prostszy do przyswojenia "zielonym", ale do większych profesjonalnych projektów, gdzie w gre wchodzi wydajność i optymalne wykorzystanie zasobów mikrokontrolera to C bije bascoma na głowe ;)
  • #12 4824026
    krzkomar
    Poziom 25  
    ->KeinXor
    "@1 i @2 instrukcja skoku tez jest w c, wiec pisanie w c też wyrabia złe nawyki Exclamation (według twojej logiki rozumowania)
    @3 "walenie wszystko w globale" a co w c nie można... (też kolejny bezsens)
    @4 tego całkowicie nie rozumie...
    @5 z tego wnioskuje że jedyny normalny (twoim zdaniem) język to c "

    Ad 1,2: Instrukcje skoku są w każdym jezyku, to prawda, ale nie w każdym języku są podstawą pisania kodu. Pomijam już kwestię totalnie idiotycznego sposobu obsługi podprogramów (nieczytelnego).
    Ad 3: Jw, można w każdym, ale to jest bardzo zły nawyk.
    Ad 4 Zbytnie ułatwienia prowadzą do tego, że gdy naprawdę napotkasz poważny problem to rozkładasz ręce. A problemem może być już chociażby jakość wygenerowanego kodu (zarówno objętość jak i prędkośc wykonywania). Nie wspominając już o tym, że jak będziesz miał kilka,kilkanascie kilo linii kodu, to się zwyczajnie w tym nie połapiesz.
    Ad 5. I tu się mylisz. Są różne języki które są dobre w różnych zastosowaniach. Nie ukrywam, że głównie piszę w C lub asemblerze, ale uważam, że każdy język jest dobry, byle tylko nie był to BASIC.

    Zresztą jak widzisz, to i w C można pisac po Basicowemu, ale trzeba się "postarać". W Basicu nie napiszesz po C-owemu, bo masz za skromne mozliwości języka.

    PS
    Sam kiedyś zaczynałem od BASIC-a (nie na uc i nie na PC) i serio, nigdy nie chciałbym do tego wróćić. Obecnie czasem mam problem z znajomymi, którzy z BASCOMA korzystają, nie potrafią się na nic normalnego przestawić i o byle pierdołę zawracają głowę (sam znam go z "doskoku", tyle aby komuś pomóc).
  • #13 4824123
    KeinXor
    Poziom 24  
    Nie chce mi się już pisać wiec tylko napomknę...
    objętość jak i prędkość kodu wynikowego nie zależy od języka ale od kompilatora który go wygenerował.
    Pozdrawiam hej.
  • #14 4826812
    krzkomar
    Poziom 25  
    KeinXor napisał:
    Nie chce mi się już pisać wiec tylko napomknę...
    objętość jak i prędkość kodu wynikowego nie zależy od języka ale od kompilatora który go wygenerował.


    Owszem, co jednak nie zmienia faktu, że puki co kod generowany przez kompilatory jest bardzo marnej jakości. Dodając do tego fatalną składnię, uznaję ten język za niewarty uwagi i wyrabiający złe nawyki.

    PS
    Mam wrażenie, że nie pisałeś nigdy w niczym innym niż BASIC, a do C jesteś zrażony po (pewnie) marnej jakości zajęciach szkolnych (jeśli takie miałeś).
  • #15 4827143
    KeinXor
    Poziom 24  
    Witam,
    tak dla twojej informacji, nie podoba mi się zapis pewnych rzeczy w c "gryzie" mnie po oczach {} (java też mi do gustu nie przypadła zgadnij dlaczego;)), a co do samego c to miałem go lata temu na studiach i właśnie na zajęciach z programowania mikrokontrolerów, jakiś czas programowałem w Informix-4gl (język typowo biznesowy) i od zawsze jak pamiętam pascal no teraz pod postacią Delphi. Raz pisałem w c klienta tcp dla I-4GL i na tym moja przygoda z tym językiem sie skończyła.
    Tak więc jakieś zaplecze praktyczne i mogę coś na ten temat podyskutować .
    Pozdrawiam i do następnego.
  • #16 4843183
    zibilodz
    Poziom 12  
    Polecam C
    Dlaczego:
    Większość programów jest pisana w C
    Podejrzewam że sam Bascom jest pisany w C
    Windows i Linuxy pisane w C
    C# C++ Java PHP wszystko wywodzi się z C.
    Nauczysz się C to już mały krok do C++ i pochodnych.
    Język C w chwili obecnej jest najbardziej przenośny na wiele platform.
    AVR PIC Motorola możemy programować w C należy tylko przestudiować dokumentacje danego procesora.
    Co do Bascoma to z tego co wiem to nadaje się tylko do AVRków.

    Ciekawe dlaczego ???

    Coś w tym musi być.
  • #17 4843373
    fantom
    Poziom 31  
    Sprawa jest prosta: orientowac sie w asemblerze (wiedziec co w trawie piszczy), znac dobrze C - to jest podstawa. A jak ktos lubi moze sie douczyc roznych wynalazkow.
  • Pomocny post
    #18 4844505
    grzeslab
    Poziom 12  
    Hej,
    Skoro po pascalu poruszałeś się zwinnie, to polecam C. To będzie krok naprzód, bascom w tym przypadku to ślepa uliczka. Dodatkowo nauka C to inwestycja, jest to pewien standard i wiele języków się z niego wywodzi.
    W przypadku AVR dostęp do darmowych narzędzi jest niewątpliwą zaletą. Dodając do tego masę gotowych bibliotek nie powinieneś mieć wątpliwości co wybrać.
    Pozdrawiam
  • #19 4875559
    Fyszo
    Poziom 37  
    fantom napisał:
    Sprawa jest prosta: orientowac sie w asemblerze (wiedziec co w trawie piszczy), znac dobrze C - to jest podstawa. A jak ktos lubi moze sie douczyc roznych wynalazkow.


    Oczywiście że tak. Chociaż odwróciłbym to. Znać dobrze asembler, i orientować się w C. Prosta sprawa c + asembler = zrobimy wszystko. Jednak bascom (wogóle Basic) naprawdę uczy złych nawyków. Jest mniej elastyczny: wskaźniki, tablice, objekty (wszelkie ich warianty) to rzeczy które cieżko realizowac w basicu (ale się da), ciężko w asemblerze (im bardziej się na nim znamy tym łatwiej - ostatecznie to sam miód robić w asm tablice wskaźników do obiektów, ich używać...), dobrze się realizuje w pascalu, a w C doskonale. Zastanów się najpierw, czy chcesz w życiu zawodowo programować? Jeśli tak wybieraj asm+C, jeśli nie, to nie warto się uczyć C, spokojnie wystarczy, basic (bascom, picbasic), lub pascal (micropascal).
  • #20 4901276
    Sinistra
    Poziom 14  
    zacząłem prosto z buta od C. Uczę się już jakieś dwa tygodnie, i już umiem całkiem fajne programy robić. Uczę sie z wikibooks, jeszcze nie na AVR tylko normalnie, bo to na końcu :D. Napisałem juz program który oblicza ciąg fibonacciego, wypisuje ciąg liczb podzielnych lub niepodzielnych przez x, do liczby y, gdzie użytkownik podaje x i y. Nie wydaje mi sie jeszcze taki trudny ten C.


    Sinistra
REKLAMA