Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Chciałbym zacząć przygodę z Bascom AVR ale potrzebuje przewodnika

Jasia30 14 Cze 2015 19:40 2493 31
  • #1 14 Cze 2015 19:40
    Jasia30
    Poziom 9  

    Chcę zacząć zajmować się mikrokontrolerami i nie aspiruję by zostać zawodowym programistą.
    Na forach większość wypowiedzi preferuje język C. Wypowiedzi że bascom AVR są niemal tępione.

    Widzę że za pomocą mikrokontrolera można zrobić całkiem ciekawe projekty, zamiast budować to samo za pomocą klasycznej elektroniki.
    Chcę pozostać programistą amatorem, to Bascom z pewnością wystarczy mi na długo. Procesory Atmega też.

    W związku z tym mam prośbę, czy znalazł by się ktoś kto za rękę poprowadził by mnie JAK ZACZĄĆ?
    JAK TO SIĘ ROBI NA POCZĄTEK?

    Bez kupowania książek po 70zł, drogiej płyty ewaluacyjnej za 250zł, bez programatora na stare złącze drukarkowe COM, którego nie mam w laptopie. Wiem że są programatory pod USB itd.
    Pomoc przy obsłudze programu Bascom a zwłaszcza jego symulatora itp.

    Znajdzie się ktoś komu by się chciało pomagać nie na forum tylko bezpośrednio?

  • #3 15 Cze 2015 07:01
    dondu
    Moderator Mikrokontrolery Projektowanie

    Pierwsze co zrób, to zapomnij o BASCOM z tych powodów: http://mikrokontrolery.blogspot.com/2011/04/jaki-jezyk-wybrac.html
    Następnie zainstaluj Atmel Studio: http://mikrokontrolery.blogspot.com/2011/04/atmel-studio-spis-tresci.html

    potem ucz się wykorzystując kursy:
    - kurs C z przykładami i kompilatorem online VManiak: http://mikrokontrolery.blogspot.com/2011/02/kurs-jezyka-c-spis-tresci.html
    - kurs AVR: http://mikrokontrolery.blogspot.com/2011/03/drzaskowy-pamietnik-wstep.html

    i nie daj się zwieść żadnym argumentom na rzecz BASCOM, bo jeśli zaczniesz się go uczyć to wybierzesz najgorszy możliwy kierunek.

    Alternatywą którą ewentualnie możesz rozważać jest środowisko Arduino.

  • #4 17 Cze 2015 21:49
    Marico
    Poziom 19  

    Bascom to jest dramat a nie język. Bałaganiarska składnia i case insensitive pozwala na pisanie nieprzyjaznego oczom kodu.
    Znam osobę, która poświęciła mu za dużo czasu. dotarła do pewnej ściany w rozwoju i koniec. Język kompletnie nie rozwija, wręcz ogranicza wyobraźnie programisty do kontekstu "jednego programu" przez co trudno ogarnąć wielozadaniowość nawet opartą na prostej maszynie stanów.
    Gorąco nie polecam. Dział Bascoma na elektrodzie powinien zawierać wyraźne ostrzeżenie dla początkujących jakie konsekwencje może przynieść przygoda z Bascomem.

  • #5 17 Cze 2015 22:17
    dondu
    Moderator Mikrokontrolery Projektowanie

    Jasia30 napisał:
    nie interesuje mnie opinia o wyższości języka c nad innymi. Do celów amatorskich jest w sam raz. Jest napisanie w moim poście czegro oczekuję.


    Zastanów się nad propozycją:

    dondu napisał:
    Alternatywą którą ewentualnie możesz rozważać jest środowisko Arduino.

    Równie proste (masę gotowych bibliotek), znacznie mniej ograniczone niż BASCOM i darmowe w przeciwieństwie do BASCOMa.
    Uczy poprawnego programowania i właśnie przez amatorów na całym świecie jest stosowane.

  • #6 17 Cze 2015 22:26
    Jasia30
    Poziom 9  

    Widzę że tu nie chodzi o dobro początkującego, tylko zaciekła walka przeciwko zwolennikom Bascoma.

  • #7 17 Cze 2015 22:37
    dondu
    Moderator Mikrokontrolery Projektowanie

    Jasia30 napisał:
    Widzę że tu nie chodzi o dobro początkującego, tylko zaciekła walka przeciwko zwolennikom Bascoma.

    Widzę, że albo nie czytasz, albo kompletnie nie trafiają do Ciebie rzeczowe argumenty.
    Jeśli więc na złość mamie zimą nie chcesz założyć czapki, to Twoja decyzja.

    Jednakże na tym forum staramy się wskazywać właściwą drogę tak, by oszczędzić początkującym rozczarowań, straconego czasu i nauczenia się złych nawyków programowania w dodatku w płatnym środowisku. Dlatego zawsze w takich przypadkach staramy się przekonać do uważnego rozpatrzenia wskazanych argumentów. A to czy ktoś je w ogóle przeczyta i chociaż przez chwilę pochyli się nad każdym z nich, to już nie nasza sprawa.

  • #8 17 Cze 2015 23:37
    marekhab
    Poziom 30  

    Dorzucę swoje dwa grosze, mam x lat jestem w wieku gdzie nauka to zabytek,szkołę skończyłem w 1988r zawód niepowiązany w żaden sposób z elektroniką.
    Moje osiągnięcia to spalone parę urządzeń, parę naprawionych (czasem przypadkowo). Z racji że jestem powiedzmy melomanem to nie jestem w stanie podać ilości "zużytych " kolumn i głośników i tu nastąpił przełom pierwszy samodzielnie wykonany wzmacniacz nawet grał, z biegiem czasu i zdobywania wiedzy i doświadczenia między innymi w sieci ( tu na elce też) zrobiłem od podstaw wzmacniacz z wyliczeniem elementów pod konkretne wymagania, i tu było miłe zaskoczenie usłyszeć wzmacniacz w klasie AB. Przyszedł czas na więcej no to po drodze parę efektów świetlnych w końcu kolorofon, jakieś małe projekciki z silniczkami doszedłem do prostego sterowania silnikami krokowymi, i nadszedł ten moment MIKROPROCESORY dwa lata się wahałem i podchodziłem do tego jak do przysłowiowego jeża.
    Przełamałem się, żałuję że tak długo zwlekałem, na dziś powiem prosto języka nie mam opanowanego ale proste układy mam za sobą, nawet udało mi się zrobić oświetlenie klatki schodowej z czujnikami ruchu.
    Zamieszczam filmik z działania.
    Uczę się języka C linki stron które mi pomogły umieszczę na końcu.
    Moje zaplecze jeśli chodzi o mikroprocesory to Atmega8, Atmega2313, Atmega 162, programator USBASP, zapasowy samodzielnie wykonany programator pod LTP, wyświetlacz LCD.
    ta ostatnia Atmega 162 kupiona z jakimś zestawem uruchomieniowym, co do programowania to jestem umysłem czysto matematycznym więc jest mi łatwiej pojąć zasady panujące w systemie dwójkowym, jak to zrozumiesz to Hex nie jest już jakąś zagadką.
    Z czym mam problem? Język angielski mnie go nie uczyli, a przydałby się.
    Moje ostatnie większe przejścia z mikroprocesorami to zablokowana Atmega162 i tu przyszła mi z pomocą Atmega8 i szperanie po forach co robić.
    Efekt kilku godzinnym składaniu (na stykówce ) układu do programowania wysokonapięciowego Atmega działa, moje doświadczenie? Kilka razy sprawdź zanim
    zmienisz jakikolwiek fuse bit .
    Życzę udanych konstrukcji i ciekawych pomysłów jak wykorzystać mikroprocesor.
    Obiecane linki :
    http://hobby.abxyz.bplaced.net/index.php?pid=4&cid=1
    http://mikrokontrolery.blogspot.com/p/spis-tresci.html
    http://edu.i-lo.tarnow.pl/inf/prg/009_kurs_avr/0017.php#P1
    http://edu.i-lo.tarnow.pl/inf/prg/009_kurs_avr/index.php

    W tym linku polecam archiwum bloga na samym dole po lewej.
    http://mirekk36.blogspot.com

    A wszystko to jest moje hobby , taki już jestem .

  • #9 18 Cze 2015 17:30
    MArSTER_1
    Poziom 18  

    W Bascomie programuję choćby dlatego, że piszę też programy na PC w Visual Basicu. Jeśli ktoś napisał, że w Bascomie "doszedł do sciany" to powinien był skorzystać z możliwości bezpośredniego programowania rejestrów (konfiguracja portów itp). Reasumując. Nie przejmuj się tym co piszą o przewadze języka C nad Bascomem. Łatwiej się go nauczysz jako początkujący i na pewno dasz rade oprogramować to co sobie postanowiłeś. Jeśli jeszcze nie dogadałeś się z Niveasoft to zrób to- skoro deklaruje pomoc skorzystaj.

  • #10 18 Cze 2015 18:19
    miro340
    Poziom 12  

    Najbardziej idiotyczne dyskusje jakie można znaleźć na forach dotyczą trzech tematów: jaki język programowania jest lepszy, jakie środowisko programistyczne jest lepsze ( nie koniecznie w kontekście programowania procesorów) i jaki procesor jest najlepszy. W każdym z tych przypadków najbardziej poprawną odpowiedzią jest: to IDE, ten procesor, język, który mamy najlepiej opanowany. Drodzy Panowie opowiadanie bzdur typu bascom nie rozwija, jest beznadziejny, nauka bascoma to strata czasu itp. nie ma żadnego uzasadnienia. wbijcie to sobie do głowy, że nie wszyscy muszą programować w C bo nie każdemu jest to potrzebne. Czy tak trudno jest zrozumieć, że nie każdy che się zajmować zawodowo programowaniem procesorów, nie każdy chce być inżynierem i ciągle poszerzać listę procesorów jakie potrafi programować. Wyobraźcie sobie, że są tacy ludzie, którzy chcą po prostu móc szybko i łatwo napisać prosty program, ktory w 100% spełni ich oczekiwania? Po co od razu opowiadać takim ludziom, że jeśli będą uczyć się bascoma to już są przegrani, że nauczą się złych nawyków i może jeszcze zostaną potępieni i skończą w czeluściach piekielnych. Jeśli by tak już szło o ścisłość to również ci, którzy zaczynają naukę programowania od C, nie mają powodu do rardości bo C jest właśnie tym językiem, który wyjątkkowo uczy bałaganiarstwa. Jeśli chcieliście być tacy porządni i poukładani powinniście byli zacząć naukę od pascala. Wbijcie sobie Panowie do głowy, że nie język programowania jest ważny, ważne jest aby sobie radzić z algorytmizowaniem problemu, zadania. A co do bascombasica to oczywiście jest to bardzo prosty pod względem składni język i łatwo jest się go nauczyć, co przyciąga zwłaszcza bardzo młodych ludzi. Jest w tym oczywiście pułapka bo tak naprawdę właśnie w tak prostym języku nie posiadającym wielu przydatnych mechanizmów znacznie trudniej uzyskać porządany efekt niż np w C. Co więcej jeżeli programując w bascom korzysta się z rejestrów ( programuje się w "stylu C"), to można znacznie więcej uzyskać niż gdy stosuje się typowe bascomowe podejście. Pozwala to również łatwo przesiąść się właśnie na C, no bo siłą rzeczy trzeba poznać lepiej budowę procesora. I chociaż by z tego powodu nie można twierdzić że bascom ogranicza rozwój. Oczywiście poważnie myśląc o karierze programisty trzeba będzie zmienić bascoma na C/C++ ale nie można tego traktować jak dogmat.
    Nie chcę tutaj bronić bascoma, a jedynie ludzi, którzy chca wykorzystywać to narzędzie. Sam naukę programowania rozpocząłem od assemblera na '51 tak dawno, że już nie pamiętam kiedy to było, pierwszy program w C++ napisałem też nie wiele później i znam jeszcze kilka innych języków programowania(w tym bascommasic) i nie uważam aby nauka któregoś z nich była stratą czasu i hamulcem w rozwoju. Wręcz przeciwnie. No i już tak na koniec jeśli ktoś Was prosi o pomoc to postarajcie sie mu służyć radą w zakresie o jaki prosi, a nie udowadniajcie mu jaki to on / ona jest nierozgarnięty i stojąc nad przepaścia robi wyraźny krok naprzód. Jeśli ktoś che uczyć się bascoma to niech się go uczy. Jeśli zajdzie taka potrzeba napewno pozna inne, bardziej zaawansowane języki. I pamiętajcie, nauka nawet najbardzij przymitywnego waszym zdaniem języka nigdy nie jest stratą czasu i zawsze pozwala się rozwijać czy wam się to podoba czy nie.
    Wybaczcie ten może trochę ostry ton ale jak się czyta takie rzeczy to trudno się czasami powstrzymać :)

  • #11 18 Cze 2015 19:32
    dondu
    Moderator Mikrokontrolery Projektowanie

    MArSTER_1 napisał:
    W Bascomie programuję choćby dlatego, że piszę też programy na PC w Visual Basicu.

    To jest istotny argument i ja go akceptuję. Temat jednak do dotyczy Ciebie.

    MArSTER_1 napisał:
    Jeśli ktoś napisał, że w Bascomie "doszedł do sciany" to powinien był skorzystać z możliwości bezpośredniego programowania rejestrów (konfiguracja portów itp).

    Widzę, że nie czytałeś argumentacji, bo nie to jest w tym najważniejsze - to tylko malutki wycinek argumentów.

    MArSTER_1 napisał:
    Nie przejmuj się tym co piszą o przewadze języka C nad Bascomem. Łatwiej się go nauczysz jako początkujący i na pewno dasz rade oprogramować to co sobie postanowiłeś.

    Nikt z nas nie zmusza początkującego do uczenia się języka C.
    Wręcz przeciwnie - dwa razy w tym wątku podałem alternatywę, znacznie lepszą niż Bascom: Arduino


    miro340 napisał:
    Wbijcie sobie Panowie do głowy, że nie język programowania jest ważny, ważne jest aby sobie radzić z algorytmizowaniem problemu, zadania.

    I właśnie w tym zakresie Bascom sieje największe spustoszenie w głowach początkujących. Dlatego późniejsza przesiadka na jakikolwiek inny współczesny język, jest tak koszmarnie trudna.


    miro340 napisał:
    Nie chcę tutaj bronić bascoma, a jedynie ludzi, którzy chca wykorzystywać to narzędzie.

    Podstawowym błędem takiego rozumowania jest zrozumienie, że osoba zaczynająca nie ma podstaw do wyciągnięcia wniosków, czy jej decyzja jest prawidłowa, a jeśli nie to jakie przyniesie konsekwencje. Naszą rolą jest natomiast uświadomienie tej osobie, tych wszystkich problemów które napotka w przyszłości dokonując najgorszego możliwego wyboru.

    Mamy do tego prawo? Jeśli tak, to pozwólcie, że z niego skorzystamy.

    ----------

    Swoimi radami doprowadzacie do takiej sytuacji:

    Przychodzi nowicjusz do sklepu ze sprzętem narciarskim i mówi:

    Przyszły narciarz napisał:
    Poproszę te żółte buty co są w waszym magazynie na samym końcu koło kosza.


    Sprzedawca odpowiada:

    Sprzedawca napisał:
    Proszę Pana:
    - to są buty sprzed 20 lat,
    - strasznie niewygodne,
    - noski nie pasują do żadnych współczesnych wiązań,
    - w dodatku strasznie drogie, bo szef nie pozwala sprzedawać poniżej kosztów zakupu,


    Proponuję Panu inne buty:
    - bardzo wygodne,
    - z żelowymi wkładami termicznymi,
    - dopasowujące się do stopy,
    - pasujące do każdych współczesnych wiązań i nart
    - i w dodatku to wszystko za darmo, bo producent ma taki gest.


    Wy radzicie nowicjuszowi:

    Koledzy świadczący niedźwiedzie przysługi napisał:
    Bierz te żółte my też takie mamy. Co z tego że są niewygodne, stare i pasują tylko do wiązań sprzed 20 lat i że nie są za darmo - ważne, że są żółte.


    ----------

    Jeżeli nadal do Was nie trafiają żadne rzeczowe argumenty (choć wątpię by ktokolwiek z Was przeczytał je), to Wasz problem i nic nam do tego. Programujcie w czym chcecie.

    Nie róbcie jednak krzywdy początkującym, którzy zaczynają i nie ciągnijcie ich w dół tylko dlatego, że w nim sami siedzicie i chcecie mieć kompanów.

    Chcecie to kupujcie stare buty, zamiast mieć nowoczesne wspierane przez producentów narzędzia i języki, i w dodatku za darmo i bez jakichkolwiek ograniczeń.


    Na koniec podsumowanie, które warto przeczytać:

    pawel-jwe napisał:
    Odnośnie języków programowania AVR'ów to zauważyłem pewną własność, każdy kto uważa że BASCOM jest lepszy i bardziej mu pasuje, uważa tak tylko do momentu kiedy nie zacznie programować w C/C++.

  • #12 18 Cze 2015 20:24
    niveasoft
    Poziom 33  

    Uważam, że moderator jest ekstremistą który zamiast godnie pilnować jakiegoś porządku, nie pierwszy raz, a wręcz z uporem maniaka, w kolejnym temacie niepotrzebnie podjudza swoimi wypowiedziami.

    Nie pominę faktu, że "walczy" nieetycznymi metodami usuwając niewygodne dla siebie posty...

    Zamiast zachęcać do C dając dobry przykład na przykład pokazując jak w jego osławionym symulatorze przeprowadzić symulację działania przetwornika ADC, to wprowadza metody krzewienia C jak Krzyżacy czy dawno temu Muzełmanie Islam...

    Każdy ma prawo wyboru i powinien to zaakceptować. Ma oczywiście prawo do wyrażenia swojej opinii ALE NIE W KAŻDYM POŚCIE!

    Napiszcie to RAZ i przyklejcie sobie ten manifest u góry, ale DAJCIE JUŻ SPOKÓJ

    Przecież niedługo otworzę lodówkę a tam Dondu mi powie że źle robie! Tu nawet na post nie można odpowiedzieć nie ważąc słów bo niewygodny post wyląduje w koszu.

    POWTÓRZĘ TERAZ - NAPISZ RAZ I WYSTARCZY!

    Kopię tego postu wyślę do moderatora globalnego bo jeśli tak ma być dalej to dzięki.

  • #16 18 Cze 2015 20:40
    dondu
    Moderator Mikrokontrolery Projektowanie

    niveasoft napisał:
    Rozumiem o raz n-ty. Może tak nie w każdym poście?

    Rozumiem, że po każdej kolegi, czy innej osoby odpowiedzi ja już nie mam prawa odpowiadać?

    niveasoft napisał:
    Uważam, że moderator ...

    Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności.
    Wszelkie inne teksty piszę jako zwykły użytkownik, proszę o tym pamiętać i nie mylić więcej.

    niveasoft napisał:
    Każdy ma prawo wyboru i powinien to zaakceptować.

    Aby wybór był świadomy należy najpierw poznać plusy i minusy poszczególnych języków i ja właśnie o to dbam.
    Jeżeli natomiast naprzeciw moich rzeczowych argumentów przedstawia się emocje jak kolega, bez podawania żadnych kontrargumentów oznacza to, że moje argumenty są widocznie bardzo trudne do podważenia.

    Jeśli natomiast autor tematu podejmie decyzję, na podstawie emocji i braku argumentów, to już jego sprawa nic mi do tego.

  • #17 18 Cze 2015 21:10
    tmf
    Moderator Mikrokontrolery Projektowanie

    Też wtrącę swoje trzy grosze. Zacznę kontrowersyjnie. Warto spojrzeć kto doradza - jakoś tak się składa, że C/C++ doradzają osoby mające tysiące postów na koncie i często setki lub tysiące "pomógł", po przeciwnej stronie mamy osoby z licznikiem na poziomie kilku-kilkunastu. Nie znaczy to oczywiście, że ktoś rozpoczynający karierę na elektrodzie nie może mieć racji... Jednak statystyka jest przeciwko niemu :) Dlaczego kol. Dondu doradza C (i wiele innych osób)? Po prostu widzimy jak wygląda rozwój nowego adepta mikrokontrolerowego od jego początków. Mamy już na koncie pewnie z kilkaset osób, które tu zaczynały, myślały o Bascomie, doradziliśmy im inaczej, często przy dużych sprzeciwach, a po jakimś czasie (niezbyt długim) dostawaliśmy wiadomości z podziękowaniami. Mnie osobiście nigdy się nie zdarzyło, żeby osoba, którą namawiałem na C napisała mi po jakimś czasie, że to był głupi wybór i Bascom jest lepszy. Za to praktycznie co tydzień ktoś pisze, że szkoda, że nas nie posłuchał, bo zmarnował ileśtam czasu.
    Każdy może prezentować swoje opinie, dopóki są merytoryczne. Każdy ma je prawo merytorycznie skrytykować.
    Więc moja merytoryczna krytyka. VB i Bascom to dwa różne języki! VB to raczej rodzaj frameworka i z Bascomem może mieć co najmniej drobne podobieństwa w podstawowej składni, lub jakieś podobieństwa słów kluczowych. Ale to nieistotne. Warto też wczytać się w argumenty Bascomowców - wszystko można w tym języku zrobić, jeśli programujemy na rejestrach. Panowie, czyli co, używamy Bascoma, po to, żeby go wykorzystać jako kiepski kompilator asemblera? W dodatku płacimy za to kilkaset złotych! Prawie 500zł za pełną wersję. To już wolę kupić kompilator z mikroelektroniki - C, ale z kompletem wysokiej jakości bibliotek, dobrym kompilatorem i niezłym IDE. Te dwie ostatnie rzeczy można mieć za darmo (doskonały avr-gcc i świetne Atmel Studio). Ale cena to nie wszystko - za prawie 500zł dostajemy środowisko zamknięte, ograniczone praktycznie do jednej rodziny mikrokontrolerów. Z opcją, że jak się przesiądziemy na coś innego to wszystkie kody trzeba przepisać od zera.
    Kol. Dondu wspominał o symulatorze dostępnym w AVR Studio i Atmel Studio. To doskonałe narzędzie. Kol. @niveasoft sugeruje jakoby nie dało się w nim zasymulować działania ADC. Nic bardziej błędnego - wystarczy stworzyć tylko plik z danymi "analogowymi" i podłączyć go pod AS jako stimulifile. Jasne, dla początkującego może to brzmi skomplikowanie, ale początkujący nie robi skomplikowanych symulacji peryferii. A do podstawowego sprawdzenia konfiguracji ADC, czy odpowiedzi programu na jakąś wartość z ADC wystarczą breakpointy i ręczne wpisanie wartości do ADC.

  • #19 18 Cze 2015 22:23
    marekhab
    Poziom 30  

    Jasia30 czy jeszcze po tym wszystkim jesteś na tym forum aktywnym użytkownikiem, czekam na Twoje zdanie co o tym wszystkim myślisz (przecież jesteś założycielem tego tematu), i jaka Twoja decyzja którą ścieżką pójdziesz (cel zawsze jest jeden zaprogramować "pomysł" i wykorzystać w życiu codziennym). Oczekiwałeś pomocnej ręki a co w zamian dyskusje co jest lepsze. Weź poprawkę na to że zawsze jest tak << co ja używam jest najlepsze, jeśli jeśli ktoś robi inaczej robi źle, >> i to jest przyczyna niepotrzebnego skakania sobie do gardeł.
    A ilu z nas przyzna się do błędu że coś banalnego spartaczyło???

  • #20 18 Cze 2015 22:32
    dondu
    Moderator Mikrokontrolery Projektowanie

    marekhab napisał:
    A ilu z nas przyzna się do błędu że coś banalnego spartaczyło???

    Może więcej o mnie powie Ci to (patrz ostatnie zdanie na stopniu 7): http://mikrokontrolery.blogspot.com/2011/04/pieklo-poczatkujacych.html

    marekhab napisał:
    ...zawsze jest tak << co ja używam jest najlepsze, jeśli jeśli ktoś robi inaczej robi źle ...

    Nie programuję w Arduino, ale go polecam zamiast BASCOM.

    Jest więc inaczej niż zakładasz.

    marekhab napisał:
    Jasia30 czy jeszcze po tym wszystkim jesteś na tym forum aktywnym użytkownikiem, czekam na Twoje zdanie co o tym wszystkim myślisz (przecież jesteś założycielem tego tematu), i jaka Twoja decyzja którą ścieżką pójdziesz ...

    ... i dlaczego taka, a nie inna.

  • Pomocny post
    #21 18 Cze 2015 22:32
    atom1477
    Poziom 43  

    dondu napisał:
    niveasoft napisał:
    Uważam, że moderator ...

    Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności.

    Niestety raz się zdarzyło że na czerwono wyciąłeś tekst o "niewygodnym" środowisku programistycznym :D
    Ale nie o tym będę pisał.
    Napiszę jak to wyglądało u mnie.
    Ja zaczynałem od BASCOMa. I to BASCOMa '51.
    Były artykuły w EdW. Nie miałem jeszcze kompa więc sobie tylko czytałem.
    Poznałem jak działają pętle, ify, itp.
    Potem gdy rodzice w końcu kupili komputer to w EdW powtórnie wyszła seria o BASCOMie. Rozpoczęła się od jednego krótkiego wstępu w BASICu na PC (takie coś co się w DOSie odpalało).
    No i faktycznie było fajne (BASIC na PC). Przynajmniej jak dla kogoś kto wcześniej w ogóle nie programował. I nie miał nikogo znajomego co by to robił. Więc co bym nie napisał, i w czym bym nie napisał, to było coś i szpan na całą wieś.
    Tak więc ten jeden numer Edw z BASICem i potem od razu leciał kurs BASCOMa.
    Prowadził go taki gość co już nie żyje. Pisał że BASCOM go powalił na kolana jako amatora. Bo nigdy nie mógł ogarnąć różnych rzeczy, a w BASCOMie np. wyświetlenie czegoś na LCD to była jedna komenda.
    I nie powiem, w tamtych czasach jak słowo datasheet było mi jeszcze obce (nawet internetu nie miałem, BASCOMa mi jakiś kolega ściągnął (i to na dyskietkę)) to wyświetlenie czegoś na LCDku komendą było prostsze niż napisanie obsługi LCDka od 0. W ogóle to się dziwiłem wielce wtedy, jak ludzie robią różne cuda na układach scalonych. Skąd oni wiedzą co jest w środku?
    Dopiero jak przyszedł internet, a wraz z nim datasheety, to zrozumiałem :D
    Od razu jeden z kolegów mi powiedział żeby przejść na C. I nawet chciałem, ale zawsze mnie odstraszała składnia. Teraz wiem dlaczego.
    Bo wszyscy z uporem stosują składnię w stylu:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    mi ona się wydaje nielogiczna i brzydka, i ja wolę taką:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    W BASCOMie taki styl jest naturalny. Dlatego bardziej mnie przekonywał. Nie wiedziałem że w C też tak można.
    Na początku przygody każdy chce się posilać przykładami i mnie osobiście natrafione przykłady w C po prostu odstraszały. Nie zapisy do rejestrów bo to było mi znane (kurs BASCOMa '51 wiele rzeczy miał robionych a rejestrach). Tylko właśnie ten styl dziwny. Oraz zagnieżdżanie 100 rzeczy w jednym równaniu. Ciężko było po prostu zrozumieć czyjś kod w C. A w BASCOMie wszyscy pisali prosto.
    Podobał mi się też symulator BASCOMa.
    Z czasem pojawiały się problemy z czasem wykonywania kodu i innymi kwiatkami.
    Niektóre rzeczy poprawiałem sam bo posiadłem umiejętność edytowania bibliotek BASCOMa (wcześniej zacząłem już robić wstawki assemblerowe, więc po otwarciu bibliotek BASCOMa wiedziałem co jest co i jak to edytować (biblioteki są w assemblerze)).
    Inne rzeczy były dziwne więc po prostu robiłem ręczne protezy już w kodzie (w postaci wstawek asm albo ręcznego przypisania do rejestrów).
    Pamiętam że były ciągłe problemy z Timerami. Co Timer, albo co procesor, to któraś opcja nie działa. Bo AVRy miały trochę burdel w Timerach i nawet się nie dziwię że ciężko było to ogarnąć (bo każdego Timera z każdego procka BASCOM musiał by w sumie osobną bibliotekę mieć).
    W końcu całkowicie przeszedłem na konfigurowanie rejestrami. Co najlepsze symulator BASCOMa mimo to działał (prawdopodobnie symuluje niskopoziomowo na podstawie zawartości rejestrów a nie na podstawie własnych wysokopoziomowych komend).
    W każdym razie w pewnym momencie, mimo że pisało się fajnie, zdałem sobie sprawę że tych protez jest za dużo.
    Niech ktoś sobie zobaczy projekt AVT2864 który rzekomo jest napisany w BASCOMie. A tak naprawdę to jest jedna wielka wstawka assemblerowa.
    W końcu postanowiłem się przełamać i spróbować C.
    Myślałem że będzie to trudne. Najbardziej się bałem obsługi LCDka bo tego nigdy nie zrobiłem samodzielnie (jedyna rzecz do której używałem wbudowanych funkcji BASCOMa).
    Okazało się że już pierwszego dnia pisało się lepiej niż w BASCOMie.
    Kompilator C po prostu pozwala na dowolne "zagnieżdżanie" operacji arytmetycznych. Wtedy już programowałem ostro i zagnieżdżania się już nie bałem tak jak wcześniej. I wtedy wyszło ograniczenie BASCOMa.
    W BASCOMie można było z tego co pamiętam zagnieździć co najwyżej jedną rzecz.
    A w ifie to w ogóle nic.
    Nie można było napisać:
    If (a+b) > c Then
    Trzeba było wcześniej wliczyć a_b = a + b.
    I dopiero to podać do Ifa.
    Albo obliczanie w jednej linii po prostu.
    a = b*c + d*e + cos(e)
    Też nie. Osobno musowo.
    BASCOM też kiepsko kompiluje. Np. If z funkcją And albo Or (oczywiście też nie można zagnieździć zbyt wielu, max to było 1 :D).
    On to kompiluje jako faktyczną funkcję And czy Or.
    Sprawdza jeden warunek i ustawia bit. Sprawdza drugi i ustawia drugi bit.
    Robi And albo Or na tych bitach otrzymując trzeci bit. I dopiero trzeci If z tego trzeciego bitu określa czy If wejdzie do środka czy nie.
    Zamiast zagnieździć te dwa sprawdzenia w sobie (dla And). Czy dać je "prostopadle" (dla Or).
    Albo jak się napisało
    If a > 5 Then
    to BASCOM uparcie sprawdzał czy jest większe od 5 rozwijając to w jakieś rozwinięcia algotytmiczne (AVR nie ma do tego instrukcji, ma tylko na >=).
    Zamiast po prostu zamienić na If a >= 6 Then
    Zagnieżdżanie i te nieszczęsne Ify sobie ogarnąłem wcześniej za pomocą takiego prekompilatora jak to nazwałem.
    Teraz mój zasób słów jest większy więc bym to nazwał "przyspieszać do zwalniacza". Bo przyspieszało to powolny kompilator.
    Zmieniało te nieszczęsne
    If a > b Then
    na
    If a >= (b+1) Then
    Dodawanie stałej zmieniało na odejmowanie odpowiedniej stałej ujemnej (AVR nie ma instrukcji addi, ma tylko subi).
    I parę innych rzeczy. Kod faktycznie działał potem szybciej.
    Nie żałuję, bo co się nauczyłem to moje.
    Prekompilator się później przydał bo posłużył później do stworzenia własnego kompilatora (na potrzeby programowania inteligentnych budynków).
    Ale po przesiadce na C odkryłem że to była trochę ślepa uliczka.
    Po zdekompilowaniu przykładowego kodu (jakoś mało zajmował w stosunku do BASCOMa) okazało się że kompilator C robi te wszystkie moje sztuki sam. A nawet robi jeszcze inne.
    Po co więc szukać nieoptymalności w BASCOMie, i je potem ręcznie poprawiać.
    Kod do obsługi LCDka którego się tak bałem, powstał w godzinę i okazał się fajny.
    Fajny bo napisany raz, a posłużył wiele razy.
    A w BASCOMie zawsze musiałem uważać jak przenosiłem jakiś fragment (bo pisałem wstawki w assemblerze i trzeba było pilnować których rejestrów się użyło a które są jeszcze wolne).
    Po jakimś czasie musiałem powrócić do BASCOMa bo musiałem przerobić zrobione wcześniej urządzenie. I nagle problem. Nie działa po przekompilowaniu (mój układ opierał się na pierwszym pomiarze ADC po uruchomieniu urządzenia (pomiar napięcia zasilania)).
    Co się okazało. W AVR pierwszy pomiar po uruchomieniu ADC jest błędny.
    A co robił stary BASCOM? Na wszelki wypadek każdy pomiar robił dwukrotnie.
    W nowszej wersji kompilatora już tak nie było. A ja przekompilowałem kod właśnie jakimś nowszym BASCOMem.
    To oczywiście podstawa obsługi ADCka i trzeba ręcznie zrobić ten jeden pomiar przy inicjalizacji ADCka. Ale wcześniej nie znałem tego bo BASCOM wszystko załatwiał sam. Więc nawet nie wnikałem w datasheeta w tym miejscu.
    Tak więc trochę przeróbek i kod znowu działa. Ale wiem po czytaniu elektrody że takich zmian jest więcej. Co edycja BASCOMa to wszystkie starsze programy po przekompilowaniu przestają działać.
    Ostatnio pisałem na elektrodzie że jest równość pomiędzy C i BASCOMem. To wyjaśnię że chodziło mi o język. Bo sam język to tylko język. Sam BASCIC dopuszcza zagnieżdżanie obliczeń. Czy inne rzeczy.
    To dopiero kompilator jest upośledzony.
    Ale wystarczy upośledzony kompilator (do BASCOMa jest jeden, więc nie można wybrać innego mniej upośledzonego) żeby raczej tego unikać.
    Mimo to nie będę zniechęcał do BASCOMa.
    Jak mówię, sam zaczynałem w BASCOMie i pisałem w nim dobre kilka lat, zanim przeszedłem na C.
    W pewnym sensie nie żałuję.
    Jednak generalnie BASCOM nie dał mi nic. To samo bym napisał w C gdybym zaczynał od C.
    Jest więc pomiędzy nimi równość gdy się chce pisać proste rzeczy.
    To nie jest więc argument za BASCOMem (że ktoś chce pisać tylko programy amatorskie). W dodatku nawet gotowa komenda z BASCOMa może nie działać z powodu jakiegoś błędu w jego bibliotece. Tak więc dla początkującego BASCOM wcale nie musi być taki dobry jak się wydaje.
    Wiele rzeczy o których wspomniałem być może już zostało naprawionych.
    A zawsze coś bardziej skompilowanego będzie potrzeba i nagle się BASCOM wyłoży (operacje na wskaźnikach, albo zagnieżdżenie czegoś dla wygody choćby).
    Już nawet nie mówię o funkcjach, ale o zwykłym zapisie do rejestrów (kiedyś był problem jak jakiś większy procek miał na tyle dużo rejestrów SFR że musiały być w dwóch wersjach adresowania).
    Po prostu chyba nikt nie zauważył co odstrasza początkujących od C.
    Ja zauważyłem na sobie, więc piszę. Są to skomplikowane kody z internetu.
    Ale kod w C wcale nie musi być skomplikowany.
    Czym się różni:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    od
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    ?
    Niczym (w sensie skomplikowania).
    Tak więc i w C można pisać prosto.
    Ale w razie czego dobrze jest móc napisać:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    na co BASCOM nie pozwoli. I trzeba będzie napisać:
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    Jakoś w BASCOMie nie wydaje się to prostsze.
    Zniechęcają też operacje w stylu:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Ale wcale nie musowo tak pisać.
    Można tak jak w BASCOMie napisać łopatologicznie:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Po prostu początkujący trafiają na tą pierwszą wersję i nie wiedzą co to jest. Albo jak nawet wiedzą to myślą że tak musowo a im się to nie podoba.
    A prawda jest taka że wcale tak nie musowo. Można pisać po swojemu.
    Tak więc zniechęcać nie zniechęcam. Mam nadzieję że ten mój przykład sam zniechęci :D
    W razie czego mogę nawet coś podpowiedzieć.
    Ale od razu mówię: już mnie kilka osób prosiło o pomoc z BASCOMem i się wtedy okazywało że ja wcale nie znam BASCOma: bo po prosu nigdy nie wykorzystywałem tych jego wysokopoziomowych funkcji. Co najwyżej te od LCDka czy UARTa. Więc moja pomoc się ograniczy do obsługi menu i prostych rzeczy jak ify i pętle.

    PS. Nie ma to jak się rozpisać :D

  • #22 18 Cze 2015 23:45
    dondu
    Moderator Mikrokontrolery Projektowanie

    atom1477 napisał:
    Nie ma to jak się rozpisać :D

    Napisałeś dokładnie to, co próbuję przekazać początkującym. :)
    Super, że poświęciłeś swój czas i opisałeś swoją historię.


    Zawsze uważałem i uważam, tak jak wielkimi czerwonymi literami napisałem na początku w swoim artykule:

    Cytat:
    Każdy język jest dobry dopóki pozwala Ci zaprogramować mikrokontroler tak jak chciałeś.

    Nie wiem jak duży musiałby być ten napis i ile razy w tekście powtórzony, by czytający zrozumieli wydźwięk artykułu. :)

    Ponieważ język językowi nie jest równy stąd istotne jest pokazanie rzeczowych argumentów. Ja je przedstawiam opisowo, Ty zrobiłeś podobnie + przykłady - bardzo fajnie i można wiec merytorycznie dyskutować.

    Największe spustoszenie w głowie początkującego robią wypowiedzi bez konkretów jak kolegów wyżej. Gdy prosi się ich o konkrety niestety milkną.

    Jeszcze raz więc dziękuję w imieniu pytających o Bascom, a w przyszłości będę odsyłał ich także do tej Twojej wypowiedzi :)

    Do Twoich przykładów dodam kolejny - prosta funkcja kwadratowa: y = 0.3187x² + 2x - 7

    w C piszemy ....

    Kod: c
    Zaloguj się, aby zobaczyć kod

    ale to tylko mało istotny drobiazg. Najpoważniejsze problemy BASCOM leżą w takich sprawach:

    atom1477 napisał:
    Co się okazało. W AVR pierwszy pomiar po uruchomieniu ADC jest błędny.
    A co robił stary BASCOM? Na wszelki wypadek każdy pomiar robił dwukrotnie.




    Wypunktuję jeszcze to, na co każy kto chce zacząć z BASCOM powinien zwrócić uawagę:

    atom1477 napisał:
    Okazało się że już pierwszego dnia pisało się lepiej niż w BASCOMie.
    Kompilator C po prostu pozwala na dowolne "zagnieżdżanie" operacji arytmetycznych.
    ...
    Jednak generalnie BASCOM nie dał mi nic. To samo bym napisał w C gdybym zaczynał od C.
    ...
    Po zdekompilowaniu przykładowego kodu (jakoś mało zajmował w stosunku do BASCOMa) okazało się że kompilator C robi te wszystkie moje sztuki sam. A nawet robi jeszcze inne.
    ...
    Tak więc dla początkującego BASCOM wcale nie musi być taki dobry jak się wydaje



    atom1477 napisał:
    Po prostu chyba nikt nie zauważył co odstrasza początkujących od C.
    Ja zauważyłem na sobie, więc piszę. Są to skomplikowane kody z internetu.

    Ja zauważyłem :)
    Dlatego przygotowałem Kurs C z kompilatorem online i przykładami.
    Drzasiek zrobił kurs AVR + C - krótki, ale na początek wystarczający.
    Każdy kod programu w dowolnym moim artykule jest opisany w każdej linijce.
    Trzeba tylko korzystać, a jak się czegoś nie rozumie dopytać tutaj na forum.

  • #23 19 Cze 2015 10:04
    miro340
    Poziom 12  

    Chociaż dyskusja w dalszym ciągu jest zupełnie nie na temat to jednak zabiorę w niej jeszcze raz głos.
    Panowie, macie wszyscy rację, że C pod każdym względem ma przewagę nad Bascombasic. To wszystko co piszecie to prawda, ale zrozumcie, że nie można narzucać innym swojego punktu widzenia. Jeżeli ktoś chce programować w bascom to dajcie mu spokój i nie opowiadajcie o tym jakie to spustoszenie spowoduje w jego głowie bo to jest poprostu głupie. Zastanówcie się kim są ci początkujący, którzy chcą sobie poprogramować korzystając z bascoma. To przecież głównie dzieciaki w wieku gimnazjalnym lub początek szkoły średniej. Zamiast pisać o spustoszeniu w ich umysłach napiszcie o tym, że trzeba rozważyć:
    - czy chcą wiązać swoją przyszłą karierę zawodową z elektroniką i mikroprocesorami
    -czy chcą być tylko hobbistami
    - czy chcą mieć możliwość korzystania z innych platform sprzętowych
    itd.
    Napiszcie im, że jeśli wybiorą bascoma to nie mogą zupełnie zapominać o tym jak jest zbudowany procesor, jak on działa i że istnieje coś takiego jak dokumentacja techniczna gdzie znajdą wszelkie informacje o programowanym procesorze. A przecież ogólne przeświadczenie o tym, że programując w bascom nie trzeba nic wiedzieć o procesorze jest największym dramatem tych osób. Najgorsze jest to, że wszyscy im wmawiają że właśnie tak jest. "Po co korzystać z dokumentacji, po co uczyć się podstaw elektroniki, przecież bascom wszystko robi za was" . Oczywiście nikt w tej dyskusji tego nie twierdził ale właśnie takie słowa padające w innych dyskusjach czy na innych forach powodują prawdziwe spustoszenie w umysłach młodych, początkujących elektroników-programistów.
    Naszym zadaniem na forach jest rzetelne przekazanie posiadanej przez nas wiedzy tym, którzy proszą o pomoc, a nie narzucanie naszego punktu widzenia nawet, gdy uważamy że mamy rację. Każdy powinien podjąć sam decyzję nawet wtedy, gdy uważamy, że to błędna decyzja.
    Kolega atom1477 stwierdził, że bascom mu nic nie dał bo w C mógł od razu zrobić to samo. Nic bardziej mylnego. Przecież sam stwierdził, że bał się C, zupełnie nie mógł go zrozumieć, a bascom pozwolił mu łatwo rozpocząć pracę z procesorami. Można w związku z tym zadać pytanie: czy gdyby nie bascom to czy kiedykolwiek doszedł by do tego co potrafi dzisiaj?Czy bojąc się C nie zrezygnował by z programowania procesorów? Ręczę wam, że nie jedna kariera programisty legła w gruzach właśnie z tego powodu, że próbowali swoich sił z narzędziami, których jako początkujący nie potrafili ogarnąć. A wystarczyło tylko poszukać czegoś prostszego, żeby nabrać doświadczenia, zdobyć wiedzę, która pozwoliła by na korzystanie z tych trudniejszych i bardziej zaawansowanych narzędzi. Można by jeszcze iść dalej i zapytać: a co takiego daje koledze programowanie 8 bitowych AVRów? Przecież to samo można osiągnąć programując 32 bitowe ARMy, które dają nie porównanie większe możliwości za niższą cenę. Nie dajmy się zwariować bo to jest droga w ślepą uliczkę.
    Jeszcze raz powtórzę: nie jest ważny język programowania, ważna jest umiejętność tworzenia algorytmów. Jeśli nie potrafisz dowolnej czynności czy problemu zamienić algorytm to nie napiszesz programu choćby nie wiem jaki to miał być język. Jeśli ktoś z Was studiował informatykę to mógł się przekonać o tym na własne oczy. Na roku z setki studentów informatyki tylko kilku zostaje programistami, reszta mimo że zna składnie przynajmniej jednego języka ( zwykle C++) to i tak nie potrafi napisać samodzielnie prostego programu, właśnie dlatego, że mają problem z algorytmizowaniem zadań.
    Tak naprawdę tylko jeden argument przemawiający na rzecz C to cena środowiska programistycznego. Z tym się nie da polemizować. Programując w C zaoszczędzone pieniądze można przeznaczyć na dobry programator czy na zakup elementów elektronicznych do budowy własnej platformy sprzętowej. Cała reszta to kwestia indywidualnych potrzeb i możliwości przyszłego użytkownika.
    A tak na koniec - czy nie macie wrażenia, że ta dyskusja w żaden sposób nie pomogła kol Jasia30, który nikogo nie pytał jaki język wybrać a jedynie prosił o pomoc w nauce bascoma?

  • #24 19 Cze 2015 10:25
    niveasoft
    Poziom 33  

    Do mojej wypowiedzi dopowiem, że nie tyczyła się pobudek jakie kierują kolega Dondu bo te znam na pamięć, jest gorszy niż reklama na Polsacie, jeśli to w ogóle możliwe.
    Moja wypowiedź tyczyła się metod jakie stosuje.

    Bardzo chętnie czytałbym rzeczowe wypowiedzi na temat mikrokontrolerów.

    Jak żołnierz karabin, potrafie rozłożyć mikrokontroler AVR na części pierwsze łącznie z uruchamianiem Capture mode od przerwania analogowego komparatora, ale bardzo chętnie poczytałbym jak stworzyć plik stymulacyjny do tego symulatora Atmel Studio.

    Niestety, ktoś kto wie jak to zrobić, marnuje czas na wypowiedzi które znamy jak Amen w pacierzu.
    Róbmy swoje, ograniczmy się do rzeczowych wypowiedzi jeśli się na tym znamy i potrafimy pomóc.

    Nie zbawimy tutaj nikogo.


    Za ton poprzedniej wypowiedzi przepraszam... myslałem że tak lepiej dotrze, ale przy okazji nie chciałem by wiadomość wylądowała w koszu :P
    If You know what I mean hahahahaha :D

  • #25 19 Cze 2015 10:36
    tmf
    Moderator Mikrokontrolery Projektowanie

    @miro340 Zacznę od końca - kol. @Jasia30 otrzymał już wystarczającą pomoc w pierwszym poście kol. @niveasoft. Nie tylko wskazał mu stronę z informacjami, ale sam się także zaoferował z pomocą. Na tym temat właściwie został wyczerpany.
    Reszta odpowiedzi, to prawda, nie ma wiele wspólnego z tematem. Ale... wątek czyta nie tylko autor, ale także inne osoby. Dobrze by było, żeby miały wgląd jak to wszystko wygląda na prawdę. Każdy może wyrażać swoje opinie. Na forum trudno coś narzucić, nie chcesz czytać to co inni mają do powiedzienia - nie czytaj. Proste. Jeśli jednak ktoś pisze merytorycznie, dlaczego uważa inaczej to warto to przeczytać i się zastanowić. Nie zgadzasz się z tym, to powiedz co jest błędne i nie pasuje. IMHO początkujący może sobie wyrobić sensowną opinię tylko jeśli dochodzi do polemiki i prezentowane są różne punkty widzenia. Wiele razy na elce pomagamy komuś, kto nam przedstawia jakiś problem. Potem okazuje się, że problem jest sztuczny i wynika po prostu z błędnych założeń.
    Warto też zauważyć, że świat się zmienia. Jeszcze kilka lat temu Bascom był jakąś alternatywą, bo programowanie AVR odbywało się głównie w asemblerze, a avr-gcc dopiero powstawał. Obecnie jest inaczej. Nie tylko mamy avr-gcc z AVR-libc, ale także Arduino, które w dużej mierze przejmuje funkcję Bascoma - mamy prostotę, mnogość gotowych bibliotek, ale jednocześnie to wszystko jest opakowane w C++.
    Co do reszty argumentów -właściwie powtórzyłeś nasze. Tylko piszesz, że trzeba poznać architekturę, czytać noty itd. a na końcu pisać to w Bascomie. My piszemy - trzeba to wszystko zrobić, a na końcu wybierz coś co ma przyszłość i jest wygodne. Jest jeszcze jeden argument - zobacz ile osób na elce zna Bascoma na tyle, żeby rozwiązać niebanalny problem? 2, 3? Ile osób pomoże ci w C/C++? Sto? Może więcej. Obecnie jest taka mnogość materiałów o C/C++, blogów, przykładów, pomocnych użytkowników, że argument o prostocie Bascoma traci sens. Tym bardziej, że jak pokazał kol. @atom1477 ta prostota jest mitem.
    Nawiąże jeszcze to pytania czemu nie zaczynać od ARM? W sumie czemu nie, można od Cortex M0. A dlaczego mimo wszystko można zaczynać od AVR? Z prostej przyczyny. Pisząc w C/C++ mamy ten sam język na AVR/ARM i co tam chcesz. A więc to co się nauczysz dalej wykorzystujesz. Peryferia, timery, ADC, DAC, to wszystko możesz opanować na AVR, możesz na ARM, to jest to samo. Przesiadka w efekcie z AVR na ARM to tylko kwestia dodania nowej wiedzy do już posiadanej. Przesiadka z bascom na cokolwiek to praktycznie skasowanie większości tego, czego się nauczyłeś i start od nowa.

  • #26 19 Cze 2015 12:01
    miro340
    Poziom 12  

    Jak już wspomniałem wszystko co zostało tutaj napisane na temat przewagi C nad bascom jest prawdą i nikomu nie zarzucam że jest nie merytoryczny. Wręcz przeciwnie! Robicie Panowie kawał dobrej roboty. Ale to nie zmienia faktu , że staracie się na tych młodych ludziach wymusić jednak podjęcie takiej a nie innej decyzji. Nie przekonujcie ich że programując w bascom będą gorsi. Nawet jeżeli wybiorą bascoma to dla wielu z nich będzie to w zupełności wystarczające. Niektórzy z nich kiedyś i tak przejdą na C, co jest naturalne bo na tym polega rozwój. I to wcale nie będzie błędna ścieżka rozwoju. To ile im się przyda umiejętności nabytych przy okazji stosowania bascoma zależy głównie od nich samych i jeżeli nie będą się ograniczać tylko do stosowania wbudowanych funkcji to przesiadka na C sprowadzi się głównie do poznania składni nowego języka. I nie sądzę żeby to była strata czasu. Nawet programując w bascom nabywa się doświadczenia, które później przyda się zmieniając język a nawet platformę sprzętową. Jak wiele tego doświadczenia się zyska zależy już od indywidualnego podejścia danej osoby do tematu pozyskiwania wiedzy - z resztą to dotyczy również programujących w C. Ja sam programując procesory korzystam głównie z C ale lubię czasem pobawić się w Bascom czysto dla fanu. Moim głównym językiem programowania jest jednak C++ i chociaż znam jeszcze kilka innych języków z których korzystam rzadko to nie uważam żeby czas poświęcony na ich naukę był stracony. Wręcz przeciwnie. Cała wiedza i doświadczenie zdobyte w czasach gdy poszukiwałem swojego języka programowania czy nawet IDE pozwala mi dzisiaj szerzej spojrzeć na problem ludzi, którzy stają przed dylematem co jest lepsze, bascom czy C, eclipse czy AS itd. Podjęcie decyzji, która z czasem okazuje się nie trafiona jest również ważnym doświadczeniem, co nie oznacza, że nauka jakiego kolwiek języka była błędem. Każdy język programowania czy inne narzędzie ma swoich zwolenników i przeciwników i tego nikt nie zmieni. Praktycznie każdy potrafi merytorycznie wyjaśnić powody stosowania takiego a nie innego narzędzia, z których i tak każde dają użytkownikowi identyczny produkt końcowy w postaci działającego zgodnie z założeniami urządzenia. Ta dyskusja przebiega bardzo spokojnie, z czego należy się cieszyć :), w porównaniu dyskusjami o wyższości np Vstudio nad Borland Builder jakie się toczyły jeszcze kilka lat temu a nawet dzisiaj pomiędzy zwolennikami tych IDE. A przecież te dwa narzędzia wykorzystują ten sam język programowania jakim jest C++. Programujący procesory AVR też często idą na noże w dyskusjach co jest lepsze AS czy Eclipse. Nawet jeżeli użyjemy najbardziej merytorycznych argumentów to i tak pozostanie kwestia indywidualnych upodobań i potrzeb. Często nawet 100 najbardziej merytorycznych argumentów padnie pod jednym, mało merytorycznym ale najważniejszym z punktu widzenia danej osoby. Nie ma więc co z tym walczyć i straszyć początkujących, że taki czy inny język doprowadzi ich do nikąd a inny zaprowadzi ich na wyżyny bo po prostu to tak nie działa. Jeszcze raz powtarzam, robicie panowie kawał dobrej roboty, zgadzam się ,że dobrze jest poznać C ale dajcie też możliwość tym młodym ludziom pójść własną ścieżką, nawet jeśli wg was jest zła :-).

  • #28 19 Cze 2015 13:51
    dondu
    Moderator Mikrokontrolery Projektowanie

    @miro340

    Jeśli zawodnik dowolnej dyscypliny sportowej nauczy się niewłaściwych technik, to późniejsze korygowanie jego przyzwyczajeń jest bardzo trudne i czasochłonne. Tak właśnie jest z BASCOM.

    miro340 napisał:
    To wszystko co piszecie to prawda, ale zrozumcie, że nie można narzucać innym swojego punktu widzenia. Jeżeli ktoś chce programować w bascom to dajcie mu spokój


    Przeanalizuj kolejność postów i wypowiedzi w szczególności trzy pierwsze moje posty. W którym z nich narzucam autorowi to co sugerujesz?

    W poście #5 wskazuję także dobrą alternatywę - Arduino.

    W poście nr #6 autor nagle zaczął jakieś dziwne teorie wysuwać. Dlatego w poście nr #7 wytłumaczyłem, że decyzje podejmie oczywiście we własnym zakresie, ale wytłumaczyłem także dlaczego o tym piszemy.

    Nikomu nie narzucam C jedynie podaję argumenty dlaczego nie powinien wybierać BASCOM i jakie ma alternatywy.

    Na tym poście moja dyskusja z autorem się zakończyła ... ale pojawili się atakujący BASCOMowcy ...


    -----------------------

    miro340 napisał:
    Nawet jeżeli użyjemy najbardziej merytorycznych argumentów to i tak pozostanie kwestia indywidualnych upodobań i potrzeb.

    Po raz kolejny napiszę: O indywidualnych upodobaniach można mówić, gdy osoba już programuje w danym języku jakiś czas. Jednak nie o takiej osobie jest ten temat ponieważ brzmi on:

    Cytat:
    Chciałbym zacząć przygodę z Bascom AVR

    i dlatego takiej osobie pokazuję dlaczego wybiera najgorszą możliwą opcję. Proszę więc nie pisać, że próbuję zmieniać przyzwyczajenia jakiejś osoby ponieważ ona jeszcze ich nie ma.

  • #29 19 Cze 2015 15:38
    tobiasz54
    Poziom 12  

    Dołączę do dyskusji C kontra Bascom.
    tmf napisał

    Cytat:
    Warto spojrzeć kto doradza - jakoś tak się składa, że C/C++ doradzają osoby mające tysiące postów na koncie i często setki lub tysiące "pomógł", po przeciwnej stronie mamy osoby z licznikiem na poziomie kilku-kilkunastu.

    Mam "licznik na bardzo niskim poziomie" mimo to doradzam C/C++. Jestem osobą która zaczęła w Basicu na ZX spectrum. Później VisualStudio (VB). Wszystko co chciałem napisać na PC wystarczał mi VB.
    Przyszedł czas na mikrokontroler(trochę za późno, bo dopiero od roku) i jest to LPC1769. Taki projekt do sterowania drukarką 3d, własny soft. Stąd zainteresowanie C, którego nie chciałem się nigdy uczyć, tym bardziej, że wszystkie przykłady na stronie mbed są w C++. Także to, że znam Eclipse(z programowania na androida) i teraz korzystam z LpcXpresso.
    O Bascom pierwszy raz przeczytałem na tym forum(czytam wszystko dot. programowania), nie miałem pojęcia, że takie coś jest. Już był moment,że chciałem się nim bliżej zainteresować z powodu funkcji operacji na stringach których nie ma gotowych w C np. mid.
    W C musiałem trochę pokombinować żeby odczytać np. element 5 do 8.
    Jako początkujący w mikrokontrolerach nie żałuję, że zacząłem w C oraz dziękuję za to, czego uczę się z tego forum.
    Pozdrawiam

  • #30 20 Cze 2015 00:49
    And!
    Admin grupy Projektowanie

    Nastąpiło potężne starcie obozu Bascom kontra reszta świata ;) jestem ciekawy ostatecznej decyzji @Jasia30.
    Niezależnie jaka to będzie decyzja, będzie dobra gdyż pozwoli na rozpoczęcie zabawy z programowaniem.

    W toku dyskusji pojawiło się wiele informacji, które można wykorzystać przy wyborze swojego pierwszego języka programowania. Każdy użyje swojego rozumu i wybierze rozwiązanie optymalne dla siebie w danym momencie.

    Czy lepiej wybrać Basom czy C ? nie wiem, obecnie wybrałbym C, jednak każdy jest inny. Najważniejsze to zacząć zabawę z programowaniem, jeżeli mamy taką chęć. Może to być dowolny język w którym zrealizujemy nasze obecne wymagania. Jeżeli Bascom i AVR przestanie być wystarczające to bardzo dobrze, poznamy następny język, później nową platformę sprzętową, później wykorzystamy system operacyjny zarządzający zadaniami, oraz wszystko co będzie nam potrzebne.

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Wyszukaj w ofercie 200 tys. produktów TME