Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jaki język programowania wybrać dla początkującego?

TECHNIK123 26 Maj 2012 12:20 4542 12
  • #1 26 Maj 2012 12:20
    TECHNIK123
    Poziom 8  

    Witam.

    Wiem, że temat był już stokroć wałkowany i że niektóre osoby będą się denerwować z powodu stworzenia nowego tematu, ALE NAPRAWDĘ BARDZO PROSZĘ O POMOC I WYROZUMIAŁOŚĆ.

    Jestem w miarę zaawansowanym elektronikiem i mam tylko (lub "aż") 13lat. Ale wszystkie wykonywane do tej pory moje projekty to wyłącznie prace z dziedziny audio akustyki.
    Zdałem sobie sprawę, iż żeby zaistnieć gdzieś dalej i zacząć robić projekty z innych dziedzin elektroniki (chodzi mi tu o takie bardziej skomplikowane zadania) muszę się nauczyć jakiegoś języka programowania.

    Co do programowania to jestem całkiem zielony. Umiem obsługiwać komputer ale pisać programy to już nie. Bardzo proszę o pomoc w tej sprawie.
    Jeżeli moderator zamknie temat to bardzo proszę o odpowiedzi na PW.

    PS
    Proszę. Nie piszcie komentarzy w stylu "za młody jesteś!" lub "nigdy tego nie zrozumiesz i nie nauczysz się". Ja bardzo chcę się nauczyć tylko proszę o rady od czego zacząć.

    Pozdrawiam.

    0 12
  • #4 26 Maj 2012 14:03
    TECHNIK123
    Poziom 8  

    Z tego co czytałem to żeby nauczyć się C++ trzeba trochę znać C, a ja coś czytałem jakiś kurs C ale ten język tak średnio rozumiem.

    Na początek chciałem coś najprostszego, byle tylko umożliwiło mi pisanie podstawowych programów typu: Napisy na wyświetlacze i ich zmienianie za pomocą przycisków albo odczytów, timery, voltomierze i inne bzdety(wiem że są po internecie gotowe wsady ale ściągnąć i wgrać to nie to samo co napisać).
    Myślałem o Bascom, Ruby i Asembler.

    Który z nich można by polecić??

    0
  • Pomocny post
    #5 26 Maj 2012 20:05
    gaskoin
    Poziom 38  

    Żaden. Warto znać asemblera, ale jako początkujący nie wierzę, że napiszesz w krótkim czasie obsługę wyświetlacza.

    Jedyna sensowna możliwość na mikrokontrolery to C albo C++. Do C++ w cale nie trzeba znać C, bo się znacznie różnią filozofią i korzystają nawet z zupełnie innych bibliotek.

    Bardzo prosty jest ponoć bascom, ale nie widzę sensu jego używania. Chcesz pracować na sprzęcie to musisz go znać. Jak poważniej myślisz o takim programowaniu to i tak przyjdzie czas nauki na C. Po co więc go odwlekać w czasie :D

    0
  • #6 26 Maj 2012 20:35
    TECHNIK123
    Poziom 8  

    W sumie masz rację.
    Ja myślałem o bascomie ale tylko dla tego że ponoć jest najprostszy, a ja nie mam nikogo kto w razie czego mógłby mi pomóc zrozumieć trudniejsze języki.

    Więc chyba zacznę naukę C++ tak jak każdy radzi :-)

    A czy naukę tego języka zacząć od kupna jakiegoś kursu lub książki(jeśli tak to jakiej) czy od całkiem innej strony(i znowu: jeśli tak to od jakiej?).

    0
  • #7 26 Maj 2012 20:43
    gaskoin
    Poziom 38  

    Ja się uczyłem czytając dokumentacje do API :P Mam thinking in C++ bruca eckela ale moim zdaniem jest taka sobie. Gdyby królik mi nie obgryzł rogu to bym ją sprzedał, bo poza tym zjedzonym rogiem okładki książka jest jak nowa. Ktoś inny pewnie poleci jakieś dobre książki.

    Z C++ na mikrokontrolery może Ci być trudno zacząć, ze względu na to, że odbiega ono odrobinę od "normalnego" C++. Łatwiej z C, bo więcej ludzi w nim pisze i łatwiej o pomoc.

    Jeśli mimo wszystko zdecydujesz się na C++, to uważaj na wszelkiego rodzaju kursy, ponieważ ludzie często myślą że piszą w C++ (bo używają strumieni zamiast printf :D) a tak naprawdę piszą w nie-wiadomo czym.

    0
  • #8 27 Maj 2012 00:45
    TECHNIK123
    Poziom 8  

    Czyli tak:
    Na razie na mikrokontrolery i dla moich podstawowych potrzeb wystarczy nauczyć się C, a potem w miarę możliwości "nauczać" się C++

    A jeżeli chodzi o samą naukę to z czytanie samych książek i kursów pozwoli mi się nauczyć języka czy inaczej to robić(wiem że to takie wałkowanie, ale po protu chce mieć dobry start z programowaniem i wiedzieć mniej więcej od czego zacząć)??
    Może macie jakieś propozycje nauki?

    I jakie środowisko do tego celu wybrać(chodzi mi tu o próby programowania i wgrywania softów na uC)??

    0
  • Pomocny post
    #9 27 Maj 2012 09:21
    tymon_x
    Poziom 30  

    Ze względu na wiek, żebyś się nie na wabił frustracji oraz zniechęcił do świata embedded, to wybierz IDE, które już w pakiecie instalacyjnym zawiera w sobie wszystko co trzeba. Jeśli chcesz uniknąć tej całej magii, która kryje się pod takimi rzeczami jak Makefile, linker, czasem skrypt linkera, to proponuje ściągnąć takie oprogramowanie, które robi taką magię za nas, ale to determinuje w większości przypadków danego dostawce softu, często płatnego i z ograniczeniami, albo darmowego, dostępnego w większości wypadków na stronach producentów danych uC, które wspierają tylko ich układy.

    Czyli można rozpatrzyć dwa scenariusze:

    1) Rozglądasz się za interesującym uC, które producent (z reguły) dostarcza takie IDE full wypas Black Box for dummy users. Robiące całą magię za nas, a Twoim zadaniem jest tylko napisanie softu w asm/C/C++. programowanie i debugowanie jeśli taka możliwość istnieje. I to z reguły determinuje uC producenta albo w szczególnym przypadku rdzeń/architekturę. Kilka propozycji:
    :arrow: AVR, producent Atmel, IDE AVRStudio oparte o Microsoft Visual Studio
    :arrow: Cortex (ARMv7), LPC1xxx, NXP, IDE LPCXPresso oparte o Eclipse
    :arrow: Cortex (ARMv7), STM32, LPC1xxx, IDE CoIDE oparte o okrojone Eclipse, www.coocox.org
    :arrow: PIC, Microchip, własne IDE MPLAB
    :arrow: MSP, TI, IDE Code Composer Essentials
    :arrow: dość dużo producentów tzw. 3rd party sprzedaje IDE z narzędziami do różnych rdzeni, czasem wypuszczają wersję z ograniczeniami. KEIL, IAR i tak dalej...

    2) Robisz Swojego składaka, wybierasz ulubione IDE (które jest takim wypasionym edytorem tekstowym) jak Eclipse, CodeBlocks albo klepiesz w zwykłym edytorze tekstowym Emacs/Vim/Notepad++. Musisz ściągnąć jakiś toolchain osobno, który wspiera Twoją architekturę/rdzeń, tam znajdują się narzędzia jak kompilator, linker, debuger etc. odpalane z linii komend, najbardziej popularny to GCC. Przygotować plik z regułami do kompilacji, co ma się skompilować i jak to połączyć między Sobą, czyli makefile. Czasem stworzyć skrypt linkera, czyli gdzie to wszystko umieścić w pamięci i startup. Co zyskujesz ? Większą wiedzę jak to wszytko od środka działa, darmowe i ulubione IDE do wszystkich uC czy nawet do innych rzeczy, bez ograniczeń. Czasem są dostępne wtyczki, które to maskują przygotowanie to wszystko. A jeśli toolchain jest pod dane uC, to często skrypt linkera i startup są ukryte w środku i nie trzeba się o to martwić, przykład AVR + Eclipse i plugin do tego.

    Więc jak widzisz, wybór jest. To już musisz Sobie sam to przemyśleć co wybrać na start. Ja bym Tobie proponował coś user-friendly. Do każdej wymienionej propozycji istnieje jakiś fajny zestawik, które często mają jakiś programator/debuger w cenie, więc z tym problemów nie będzie. Z książek:
    "Język C. Nowoczesne programowanie. Wydanie II" K. N. King.
    Kursy internetowe są z reguły beznadziejne, często zaciemniają sprawę i uczą złych nawyków. Ale zdaję sprawę Sobie z tego, że dla niektórych to jakiś punkt zaczepienia. Zacznij też programować na PC.

    0
  • #10 27 Maj 2012 10:01
    TECHNIK123
    Poziom 8  

    A np taki kurs:http://pl.wikibooks.org/wiki/C
    Będzie dobry??

    Czy dobrze rozumiem zasadę nauki: uczę się jak wygląda język(co po czy stoi) potem podstawowych komend i te komendy wykorzystuję do pierwszych przymiarek.

    I mam jeszcze taką sprawę, że właśnie zacząłem coś szperać i czytać w necie i nie mogę pojąć dwóch rzeczy:
    1. Jak oprogramować piny przykładowo ATmegi8 żeby można było podpiąć pod nie wyświetlacz(wystarczy na starcie odpowiednio wybrać 1 lub zero czy to trzeba zawrzeć w programie?)?
    2.Czy jeżeli np. między PD1 i PD2 dam włącznik który przy naciśnięciu będzie złączał z sobą piny to jak mam oprogramować wtedy układ żeby zmieniał napis na wyświetlaczu z np. "Hello Word" na "Witaj Świecie"??

    0
  • Pomocny post
    #11 27 Maj 2012 11:54
    gaskoin
    Poziom 38  

    Kurs jest ok. Jako referencje polecam "Język ANSI C" Kernighan and Ritchie, jest tam wszystko w pigułce, ale informacje są tam tak zwarte, że początkujący się raczej z tego nic nie nauczy. Chociaż gdy już umiesz C i potrzebujesz czasem tylko coś tam zobaczyć, to nie ma lepszej książki. Do nauki polecają książkę "K. N. King - Język C" ale osobiście jej nie czytałem. Na forum było kilka tematów z książkami, możesz ich poszukać.

    W programowaniu trzeba znać składnię (to mniejszy problem bo w 90% języków jest taka sama), trochę biblioteki i umieć myśleć. To gwarancja sukcesu :D W programowaniu mikrokontrolerów trzeba zamiast kursów czytać manuale - to gwarancja sukcesu na mikrokontrolery :) Przede wszystkim trzeba umieć szukać informacji (chociażby czy coś co chcesz zrobić nie jest przypadkiem w bibliotece, albo czy nie zrobił tego już ktoś inny).

    TECHNIK123 napisał:
    I mam jeszcze taką sprawę, że właśnie zacząłem coś szperać i czytać w necie i nie mogę pojąć dwóch rzeczy:
    1. Jak oprogramować piny przykładowo ATmegi8 żeby można było podpiąć pod nie wyświetlacz(wystarczy na starcie odpowiednio wybrać 1 lub zero czy to trzeba zawrzeć w programie?)?
    2.Czy jeżeli np. między PD1 i PD2 dam włącznik który przy naciśnięciu będzie złączał z sobą piny to jak mam oprogramować wtedy układ żeby zmieniał napis na wyświetlaczu z np. "Hello Word" na "Witaj Świecie"??


    To jest inna para kaloszy. Musisz niestety wgryźć się w notę i poczytać jak ustawiać piny IO. Generalnie konfiguruje się je jako wejściowe/wyjściowe w jednych rejestrach mikrokontrolera, a w innych się steruje samymi pinami.

    Do wyświetlacza musisz, napisać "sterownik", który go obsłuży (będzie odpowiednio machał pinami). Do najczęściej wykorzystywanych sterownik można bez problemu znaleźć w internecie. Potem program wygląda mniej więcej tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #12 29 Maj 2012 16:36
    polykarp
    Poziom 10  

    Na wstępie gratuluje chęci do zabrania się za AVR-y w tak młodym wieku. Sam ostatnio postanowiłem się wdrożyć w tą tematykę i mogę polecić kilka linków, które ułatwią Ci zrozumienie o co tak na prawdę chodzi i w jakim języku najlepiej programować AVR-y.

    Bardzo dobry blog o mikrokontrolerach (znajdziesz tu prawie wszystko co Cię interesuje na początek): http://mikrokontrolery.blogspot.com/p/spis-tresci.html

    Krótki kurs AVR-GCC - przykłady połączeń i programy w C: http://hobby.abxyz.bplaced.net/index.php?pid=4&cid=1

    Polecam też kursy: AVR-GCC: kompilator C dla mikrokontrolerów AVR z czasopisma Elektronika Praktyczna z lat 2005- 2006 (na pewno znajdziesz w Internecie)

    No i oczywiście dział o mikrokontrolerach na elektrodzie ;)

    TECHNIK123 napisał:
    I mam jeszcze taką sprawę, że właśnie zacząłem coś szperać i czytać w necie i nie mogę pojąć dwóch rzeczy:
    1. Jak oprogramować piny przykładowo ATmegi8 żeby można było podpiąć pod nie wyświetlacz(wystarczy na starcie odpowiednio wybrać 1 lub zero czy to trzeba zawrzeć w programie?)?


    W internecie znajdziesz mnóstwo przykładów podłączenie wyświetlaczy pod AVR-y tutaj masz przykład: http://mikrokontrolery.blogspot.com/2011/03/adc-prezentacja-wyniku-na-lcd.html

    Generalnie do obsługi wyświetlacza najlepiej użyć gotowej biblioteki (zależna od modelu wyświetlacza np. hd44780) i odpowiednio wysterować wyjścia z mikrokontrolera do wyświetlacza. Potem wszystko już obsługujesz z poziomu kodu źródłowego.

    Jeżeli chodzi o język programowania, to nie przerażaj się językiem C. Dam Ci tylko dobrą radę (żebyś nie stracił za dużo czasu na początek), ucz się go w odniesieniu do AVR-ów, a nie w odniesieniu do programowania na PC.

    Powodzenia

    0
  • #13 14 Wrz 2012 16:34
    ty221
    Poziom 10  

    Java jest najlepsza dla początkujących !!! Wiele w niej zrobisz, jak umiesz jave umiesz tez androida !!! Jest to język bardzo wysokiego poziomu więc jest bardzo prosty !!!!!!!!!!!!!!!!!!!!

    Moderowany przez arnoldziq:

    Drogi kolego.
    Nie wiem, czy kolega ma dzisiaj zły dzień, czy to jakaś zmiana pogody czy coś jeszcze innego. Kolejne dzisiaj ostrzeżenie. Tym razem Nr 4. Dam koledze także kilka dni na ochłonięcie, zanim dostanie kolega 5-te i ostatnie.
    3.1.11. Publikowanie wpisów nie zawierających merytorycznej treści, zawierających szkodliwe porady, porady nie będące próbą rozwiązania problemu oraz publikowanie identycznych wpisów następujących po sobie lub powtarzających informacje ujęte w toku dyskusji.

    0
  Szukaj w 5mln produktów