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

Która lepsza książka do Bacoma

blue_17 24 Sie 2010 00:05 2465 29
  • #1 8431322
    blue_17
    Poziom 32  
    Witam chciałbym zasięgnąć opinii jaką książkę o baskomie kupić czy klasyk Pana Góreckiego z 2006 r


    http://www.btc.pl/index.php?ukey=product&productID=20844

    czy też nowszą pozycję z bieżącego roku

    http://www.btc.pl/index.php?ukey=product&productID=139159

    Pytam bo zdaje sobie sprawę z postępu i wiem, że niektóre rzeczy ze starszej książki mogą być nieaktualne.

    Pozdrawiam
  • #2 8431521
    Kuniarz
    Moderator Projektowanie
    Ta druga wygląda ciekawie, ale masz tam... tylko 7dem przykładów, osobiście polecam starą już, ale treściwą książkę Marcina Wiązani.
    Pomogłem? Kup mi kawę.
  • #3 8431945
    Krauser
    Poziom 26  
    Do Bascoma masz 4 książki. W książce Góreckiego jest wszystko wytłumaczone od podstaw, a autor jest naprawdę dobrym fachowcem. Jest ona oparta na kursie który był prowadzony w EdW. Za wadę można uznać, że opisuje stary już mikrokontroler, ale jeśli chodzi o opis języka to tam jest najwięcej. Dlatego ją polecam. Pierwsza książka Wiązani zawiera prawie to samo co w polskim helpie jeśli chodzi o opis języka, ale ma jeszcze sporo przykładów co jest dużym plusem. W drugiej są same przykłady. Czy ciekawe? - oceń sam przeglądając spis treści. Ściągnij kody źródłowe. Pozycja Wołgajewa ma małą objętość - polecam przejrzeć w księgarni, bo ja czytając spis treści bym jej nie kupił. Może zawiera ciekawe rozwiązania układowe, ale nie sądzę by dobrze opisywała sam język.
  • #4 8433098
    rpal
    Poziom 27  
    Nie chcę wyjść na złośliwca ale najlepsza książka do Bascom to podręcznik C.
  • #5 8433241
    janbernat
    Poziom 38  
    Zwłaszcza że w każdym podręczniku do C masz opisane rejestry, peryferia, system przerwań, zależności czasowe itp. w procesorach AVR.
    Że już o avrlibc i sposobach zaprogramowania nie wspomnę.
    Kolega rpal na pewno poda kilka tytułów i autorów.
    A mówiąc serio- P.Górecki "Mikrokontrolery dla początkujących"
    A potem można zapomnieć o Bascomie i zacząć C.
  • #6 8433285
    nsvinc
    Poziom 35  
    Nie ma czegoś takiego jak dobra książka do bascoma. Jeśli coś
    jest do bascoma, to nie jest dobre - nic się z tego nie można nauczyć, bo
    sam bascom robi wszystko za programistę.
    Do bascoma może być dobry help, i taki nawet istnieje po polsku.
    Jak kiedyś dawno (i nieprawda) pisałem coś w bascomie, to ten help był
    więcej niż wystarczający, żeby napisać działający soft.

    Podpisuję się pod tym, co Koledzy napisali powyżej - podręcznik do C.

    janbernat napisał:
    Zwłaszcza że w każdym podręczniku do C masz opisane rejestry, peryferia[...]

    Nic z tego :] Im lepszy podręcznik do C, tym mniej zakłąda się w nim pisanie na
    konkretną platformę. Mikrokontrolera uczy się z manuala do niego, a C uczy się z podręcznika do C.
    Polecam K&R2
  • #7 8433571
    janbernat
    Poziom 38  
    No to powtórzę bez sarkazmu- bo może niektórzy nie zrozumieli.
    Jedyną ZNANĄ mi książką opisującą rejestry itp. specyfikę programowania mikrokontrolerów jest pozycja P. Góreckiego.
    To że użył w niej Bascoma- to może jest wada- ale i zaleta dla początkujących.
    Po zmianie procesora z AT90s2313 na ATtiny2313 wszystko będzie działać.
    Jasne że powinien napisać podobną książkę używając C.
    W zasadzie początkujący powinni napisać zbiorową petycję w tej sprawie do p. Góreckiego.
    Ale początkujący są słabo zorganizowani- no bo są na etapie poszukiwania- nie bardzo wiedząc czego potrzebują.
    Może bardziej doświadczeni użytkownicy powinni wystąpić z taką inicjatywą.
    Druga sprawa- K&R2 czytałem i jest to opis standardu- a nie podręcznik.
    To jest trochę tak jak próba uczenia się klasycznej fizyki z pism Newtona- cenna klasyka- ale o małych możliwościach dydaktycznych.
    A początkujący są zwykle niecierpliwi- interesuje ich implementacja- na to co jest i żeby zadziałało.
    Jak raz zadziała- to jakiś 1% z nich będzie uczyć się dalej.
    P.S.
    To założenie o 1% może jest zbyt optymistyczne.
  • #8 8433679
    blue_17
    Poziom 32  
    Więc czas abym ja powyjaśniał kilka spraw chciałem zacząć się bawić z Baskomem bo po prostu w super łatwy sposób można sobie posklecać program oczywiście niema mowy o optymalizacji :)

    Zdaje sobie sprawę iż Baskom to nie jest uniwersalny język który każdy kontroler rozumie a takim językiem jest właśnie C, lecz z tego co zauważyłem warto znać baskoma, bawiłem się trochę assemblerem i wiem, że programując w nim procesor trzeba znać na wylot, ale od czego mamy noty katalogowe :)

    Coś tam miałem styczność z Delphi to zacząłem łapać idee "prawdziwego programowania" a z tego co wiem Delphi zbliża się nieustannie w stronę C, baskom potrzebny mi jest by zacząć bez żmudnego pisania w assembleże a jeśli i tak będę chciał wszystko wycisnąć z procesora to i tak mi assembler zostaje :)

    A co do moich konstrukcji to skłaniam się do PIC-ów niż AVR-ów a dokładnie do dsPIC-ów.

    Pozdrawiam
  • #9 8434298
    mirekk36
    Poziom 42  
    blue_17 napisał:

    A co do moich konstrukcji to skłaniam się do PIC-ów niż AVR-ów a dokładnie do dsPIC-ów.


    A to się kolega wypowiedział, że hej ;) .... z Bascomem to na PIC'ach i dsPIC'ach poużywasz sobie tyle co przysłowiowy "pies w studni" ;)

    Delphi nie zmierza w stronę żadnego C - bo Delphi a raczej Pascal już dawno temu został oparty na języku Algol i miał stanowić alternatywę dla C mocno stawiając na "rzekome" uporządkowanie kodu. Coś kolega ma złe informacje. A samo Delphi to raczej już umiera niż gdzieś podąża - taka jest prawda.

    Bascoma jako język do zrobienia czegoś prostego na szybko - warto poznać, czemu nie. Ale o wiele prościej jest programować w języku C tyle że trzeba przejść nieco trudniejszą drogę przez jego poznanie.

    Wybór należy do ciebie. A co do książek, to jedna drugiej nie równa. Czasem warto przeczytać wszystkie na ten sam temat żeby wyrobić sobie zdanie i na prawdę dużo się dowiedzieć.
  • #10 8434410
    tymon_x
    Poziom 30  
    mirekk36 napisał:
    A samo Delphi to raczej już umiera niż gdzieś podąża - taka jest prawda.

    Też tak myślałem, ale Delphi cieszy się dużą popularnością wśród programistów/programistek: Ranking TIOBE TOP-20.
    mirekk36 napisał:
    Bascoma jako język do zrobienia czegoś prostego na szybko - warto poznać, czemu nie. Ale o wiele prościej jest programować w języku C tyle że trzeba przejść nieco trudniejszą drogę przez jego poznanie.

    Takie gadanie tylko odstrasza przyszłych klientów C, a on wcale taki straszny nie jest, rzekłbym nawet że prostacki. Przeciwieństwie do C# czy Java, gdzie oprócz podstaw, dochodzą takie definicje jak polimorfizm i itp. I dla zielonego w temacie, może to być hardcore. Ale wszystko jest dla ludzi (;

    Najlepiej pójść do księgarni, wsiąść w łapsko, i przeczytać losowe rozdziały. I się samemu przekonać czy ta forma trafia do Ciebie czy nie, to fakt. Ale ciągle mamy ubogą ofertę w przeciwieństwie do sąsiadów, niektóre pozycje zachodnie to perełki w same Sobie, wytłumaczone od A do Z for dummies (;
  • #11 8434415
    sowizdrzal
    Poziom 11  
    Ja osobiście wydrukowałem sobie polskiego helpa (bo lepiej wchodzi do głowy z kartki a nie z kompa) i czytałem, czytałem i czytałem...wiem, jest tego prawie 400 stron ale.... ale jak przeczytasz do czego służy każde polecenie od A... sory, od # do Z to w trakcie pisania nie tylko będziesz wiedział jakiego polecenia użyć ale będziesz wiedział jakich możesz użyc i wybierzesz najodpowiedniejsze w danym miejscu. Tyle jeśli chodzi o znajomość poleceń.
    Jeśli chcesz sie nauczyć struktury na tyle żeby co najmniej coś działało - zakładam że miałeś styczność z mikroprocesorową oślą łączką.
    Trzecia najważniejsza sprawa - jak "myśleć" przy pisaniu programu - do tego ksiażka z C i jedziesz proste programiki na choćby "DOSowym" edytorku i kompilatorku - ile zrobisz tyle Twoje "ludzkie" myślenie będzie sie mogło przestawić na "komputerowe". Trochę przykładów z jakiejś choćby najprostszej ksiazki do C i jesteś wielki krok do przodu.
  • #12 8434485
    mirekk36
    Poziom 42  
    tymon_x napisał:
    mirekk36 napisał:
    A samo Delphi to raczej już umiera niż gdzieś podąża - taka jest prawda.

    Też tak myślałem, ale Delphi cieszy się dużą popularnością wśród programistów/programistek: Ranking TIOBE TOP-20.


    O tym, że Delphi umiera to powiedziałem raczej z rozżaleniem i łezką w oku bo sam byłem Delfiarzem ale powoli przeflancowuję się na C++ albo C# czy cokolwiek innego. Wszystko przez właśnie C, którego się nauczyłem i czuję się w tym lepiej niż w pascalu. Pascal co nieco DUSI i czasem strasznie ogranicza - to tak jakby brakowało oddechu ;) .... A w C lub C++ można się zachłystywać pełną piersią

    Z tego też powodu wcale nie namawiam nikogo usilnie do Bascoma, ale też nie uważam, żeby C był "prostacki" jak powiedziałeś - bo wg mnie to takie twierdzenia zniechęcają prędzej początkujących, którzy gdy pierwszy raz zobaczą na oczy taki np kod:

    for(i=((*w)>(m))?(*ct):(10**wsk);i<m**w;i+=*ct-18***ms) *s+=7;


    to przeżegnają się lewą nogą i uciekną gdzie pieprz rośnie byle dalej od C.

    Oczywiście dla kogoś kto zna C to nie problem coś takiego przeanalizować, ale sam przyznasz , że właśnie trzeba do tego dojrzeć , czasem próbując nawet kilka razy ;) sam tak miałem. Zawsze mnie to odrzucało. Teraz jest inaczej - widać, że są tu zapisy i operatory szalenie ułatwiające pisanie kodu tyle że nie można się aż tak zagalopowywać ;) bo i samemu można się przez to kiedyś wykończyć.

    Dlatego nie wszyscy od razu muszą zacząć naukę od C - choć ja też gorąco jednak polecam ten język.
  • #13 8434522
    blue_17
    Poziom 32  
    Co do baskoma to chciałbym zrobić parę fajnych rzeczy na AVR-kach a co do piców i dspiców to oczywiście, że są do nich basic-i a interfejs bardzo podobny do baskoma avr.

    Wiem że baskom nie jest lekarstwem na wszystkie bolączki i że C to taki międzynarodowy język kontrolerów

    Jeszcze co do piców to małych Pic-ów niema co programować w czymś innym niż w assembler, oczywiście nie wspominam tu o dspicach bo to trochę inaczej wygląda :)
  • #14 8434577
    tymon_x
    Poziom 30  
    Ale zaszalałeś z przykładem, ale ktoś kto zaczyna przygodę w C, zaczyna od tych prościutkich zapisów, bez wskaźników itp. Do tego miejsca miałem na myśli, że jest "prostacki", czyli łatwo zaimplementować ciekawe operacje, bez dużej wiedzy (może zbyt ulotnie użyłem tego słowa, ale nie o to mi chodziło, co miałeś na myśli (; ). Później, powoli poznaje się skryte tajniki, które te tak naprawdę przerażają początkujących, ale pokazują "moc i piękno" języka. Tak samo mogę powiedzieć, że VHDL czy Verilog jest "prostacki" bo robię "a xor b" i mam ksorowanie sygnałów. A z wykorzystaniem tajnik np. generate jestem stanie wytworzyć potężne bloki pamięci w krótkim opisie, co dla niektórych jest "dziw i niepomanajut". Warto się uczyć C, bo to łatwiejszy skok C++, albo C#, ale najważniejsza jest duża swoboda implementowaniu własnych intencji w uK (;
  • #15 8434727
    mirekk36
    Poziom 42  
    tymon_x --> no tak - zaszalałem specjalnie bo nawet proste operacje z operatorami dwuznakowymi przyprawiają początkującym już zawrotu głowy ;) np:



    ale oczywiście zgadzam się w całej rozciągłości z tobą z tym co dalej piszesz ;) , że jednak warto to poznać - bo to później okazuje się piękne, łatwe i przyjemne. Tylko niewielu ludzi rozumie tę pierwszą barierę jaką ma wiele osób przez takie właśnie rzeczy i jeszcze jak ktoś usilnie wmawia że to od razu jest proste jak drut ;)

    Jest proste - już mówiłem, ale najpierw trzeba systematycznie poczytać po kolei na temat składni tegoż języka, jak on działa itp bo nie jest w nim to tak oczywiste jak w Pascalu czy Bascomie, gdzie tego typu nawet proste operacje trzeba rozbić na kilka prostszych bo tego wymaga właśnie standard tych języków. Co jest ich zaletą może na początku ale później oczywiście wadą w porównaniu do możliwości w C. Ot chociażby tak głuio prostej a jakże super użytecznej konstrukcji popularnej pętli for nie spotakasz w takicj językach jak Pascal czy Bascom itp ;)

    for( uint8_t i=0 ; i<10 ; i++ ) { instrukcje };

    proste dla dla ludzi już znających C a nieco zagmatwane dla kogoś kto ma zacząć się uczyć, bo dla niego prostsze do zrozumienia będzie:

    dim i as Byte
    For i=0 to 10
    instrukcje
    Next i
  • #16 8434785
    tymon_x
    Poziom 30  
    Z Bascomem nie miałem do czynienia i nie chce. Po przeczytaniu tego na wiki (ale źródło informacji(; ):
    Wikipedia napisał:
    Do wad należy:
    brak możliwości budowania wyrażeń zawierających więcej niż jedno działanie,
    nietypowa organizacja stosu, dane zapisywane są na 3 stosy; systemowy, parametrów procedur, arytmetyczny,
    brak wskaźników do danych,
    niezgodność z przyjętymi normami w innych językach programowania działania na zmiennych o różnym typie.

    To człowiekowi włosy dęba stoją, ale z wymienionych tam zalet nic dziwnego, że dużo osób go wybiera. Większość lubi "proste zabawki". Ja wolę zawsze mieć pełną kontrolę nad wszystkim i bez ograniczeń. Może wynika z tego, że przygodę z uK zaczynałem pisać w czystym ASM (;

    Według własnych preferencji, uważam że przykład z for( ; ; ) jest dużo czytelniejszy (;

    Ale zaczynając od zera, z dobrym mentorem/knigą/tutorialem można tak samo łatwo i szybko nauczyć się Bascoma, jak i C. Bardziej mi to wygląda na nacisk środowiskowy i większą (nie)świadomość zbiorową, że ten pierwszy jest niby łatwiejszy do opanowania.
  • #17 8435043
    sowizdrzal
    Poziom 11  
    tymon_x - pamiętaj że to zależy od człowieka. Mi osobiście z wielką łatwością przychodziło pisanie w Bascomie a nauka C jakoś byłą taka toporna... teraz z perspektywy czasu myślę że początkującego odrzuca to co oferuje nauka na początku C a przyciąga to co daje Bascom. No i należy pamiętac że wielu ludzi zadowoli sam Bascom (bo czasem po co wiecej?) a C to już umiejętność "aż nad to". Potrzebuje sterownik do czegos - pisze w Bascomie i mam dużo szybciej to, nad czym w C bym siedział nie wiadomo ile.
    Może autora należy zapytać co chce osiagnąc - jeśli nauke ile sie da to polecić szybkie poznanie Bascoma i jechać w C. Jeśli chce efektów i wie że mu skomplikowane programy w przyszłości nie będą potrzebne - niech szlifuje Bascoma.
    Zresztą czy nie można do Bascoma wstawiac programów w C? Otóż z tego co pamietam to chyba tak...nie jestem pewien..mozna? Bo wstawki asemblerowskie - oczywiście.
  • #18 8435080
    tymon_x
    Poziom 30  
    Trzeba skończyć to gdybanie(; Bo wątek sprowadzi się jeszcze do typu "O wyższości Świąt Wielkanocnych nad Bożym Narodzeniem", który rozpali jeszcze kolejną, w nieodpowiednim temacie, dyskusję na ten temat. A netetykieta nie pozwala(; Co racja to racja, jak dla człowieka jest coś łatwiejsze, to będzie z tego korzystał, taka natura.
  • #19 8435092
    blue_17
    Poziom 32  
    A jak coś stanie się niewystarczające do zastosowań to się i C zajmie :D

    Bo mam w planach dosyć wyspecjalizowany falownik wykonać gdzie będę korzystał z dynamicznego PID-a i wektorów w postaci macierzy i to tylko część zadań dla procka, ale oczywiście to już na pewno nie w baskomie :)
  • #20 8435562
    Krauser
    Poziom 26  
    tymon_x ma rację. Dyskusje o wyższości jednego na drugim nie maja sensu w tym miejscu. Programować można w każdym języku i spróbować można też każdego. Tak naprawdę o popularności dużo decyduje łatwość obsługi całego środowiska jak i jego cena. Co by było gdyby nie powstał WinAVR?... Nie zgodzę się również, że Bascom nie uczy programować, bo równie dobrze mógłby powstać podobny twór oparty na C. Bascom ma dużo funkcji (w których nie można pogrzebać), ale do C równie dobrze można znaleźć podobne w sieci, stworzone przez kogoś, do których nie trzeba zaglądać np. biblioteki do obsługi LCD. Sam WinAVR posiada elementy wychodzące poza sam język np. _delay_ms() - proste w użyciu, ale mające też ograniczenia. Warto słuchać opinii innych, ale jak sam nie spróbujesz to nie poczujesz ;)
  • #21 8436791
    PO.
    Poziom 20  
    janbernat napisał:
    No to powtórzę bez sarkazmu- bo może niektórzy nie zrozumieli.
    Jedyną ZNANĄ mi książką opisującą rejestry itp. specyfikę programowania mikrokontrolerów jest pozycja P. Góreckiego.
    To że użył w niej Bascoma- to może jest wada- ale i zaleta dla początkujących.


    Od tego jest datasheet :) - i są w nim przykłady w c, których daje się użyć na zasadzie kopiuj/wklej i działają od kopa. Więc można powiedzieć, że gotowe biblioteki nawet, tyle że na papierze ;) .
  • #22 8438873
    nsvinc
    Poziom 35  
    Krauser napisał:
    Nie zgodzę się również, że Bascom nie uczy programować[...]

    Nie uczy. W bascomie 95% zachodzących w mikrokontrolerze procesów
    dzieje się sama, z automatu. Jedyne co trzeba, to znać funkcje
    (a nie trzeba wiedzieć jak działają) i wiedzieć jak ma działać soft (czyli
    trzeba mieć pomysł). Zauważ, że w bascomie algorytmika leży, i jest
    ogólnie stosowana na zatrważającym poziomie. Dlaczego? Bo nie ma takiej
    potrzeby. Porównaj sobie złożoność algorytmu wykorzystującego gotowe
    funkcje np. owread,owreset..., a same te funkcje. W większości
    kodów w bascomie, można powiedzieć, algorytm nie istnieje lub istnieje szczątkowo. Popatrz na algorytm wyszukiwania ROMów 1wire.
    Ludzie pisząc coś w stylu "owfindfirst" nawet nie wiedzą co ta funkcja robi,
    a znają tylko jej koncowy efekt. A nie sztuką jest użyć gotowej funkcji, tylko
    napisać własną lub chociaż wiedzieć co robi funkcja biblioteczna.

    Krauser napisał:
    [...]ale do C równie dobrze można znaleźć podobne w sieci, stworzone przez kogoś, do których nie trzeba zaglądać[...]

    I tym sposobem ubascomowimy C. A to jest tragedia. Gotowce
    są fajne, ale na nich powinno się uczyć, a nie maniakalnie stosować!
    A większość bibliotek do obsługi LCD ma gdzieś jakieś dziury, i często
    nie działają. A to się zmieni model wyświetlacza, a to wyświetlacz jest
    zamiast 2x16 to 4x40 i już problem gotowy. A jakby pisać samemu...
  • #23 8439283
    jan_niezbedny
    Poziom 11  
    od siebie mogę polecić zestaw "HELP + WIĄZANIA"... w miarę kompletne rozwiązanie
  • #24 8440249
    janbernat
    Poziom 38  
    "I tym sposobem ubascomowimy C. A to jest tragedia."
    Problem skali.
    W avrgcc jest ze trzydzieści plików nagłówkowych.
    A w każdym kilka- kilkadziesiąt gotowych funkcji.
    Nie miałem do czynienia z żadnym profesjonalnym kompilatorem C na mikroprocesory ale podejrzewam że też starają się iść projektantowi "na rękę".
    Zgodnie z filozofią- Ty zajmij się swoim programem a płacisz za to że dostarczamy Ci gotowce rozwiązujące standardowe problemy.
  • #25 8440403
    tmf
    VIP Zasłużony dla elektroda
    Dokładnie. Też uważam, że fakt braku konieczności poznania sprzętu, żeby napisać działający program jest zaletą a nie wadą. Programista powinien się skupić na rozwiązaniu problemu, a nie babraniu się w rzeczy nieistotne, typu standardowa implementacja 1-wire, czy coś w tym stylu. Tu ubolewam, że istniejące biblioteki dla gcc na AVR są tak nieuporządkowane.
    Zresztą nsvinc - rozumiem, że w C++ też z bibliotek standardowych nie korzystasz ?:) Nie ma jak goły kompilator :)
  • #26 8440434
    gaskoin
    Poziom 38  
    a języki obiektowe? Tutaj się z reguły przecież korzysta z gotowych środków i rzadko kiedy jest dostęp do flaków. Z resztą nawet w C nie zawsze jest dostęp do źródeł, jedynie do plików nagłówkowych, a biblioteki są już skompilowane


    Moderowany przez inventco.eu:

    inventco.eu - proszę czytać temat i w stosunku do niego pisać odpowiedzi. Regulamin p.10.4.

  • #27 8441042
    janbernat
    Poziom 38  
    Co nie zmienia sprawy że kocham grzebać w sprzęcie- w rejestrach, czasach itp.
    Ale lubię też zeby na czas grzebania w określonym kawałku procesora lub kodu reszta była gotowcem.
    Np. zajmuję się ADC- jakbym miał gotowca "wyświetl na LCD" to bym z niego skorzystał.
    A innego dnia - ustawianie PWM.
    I gdyby był gotowiec "zmierz napięcie" to też byłoby miło.
    No ale tak nie ma.
  • #28 8446777
    psine.pl

    Poziom 30  
    Witam.
    Jeszcze jeden off topic i skasuję wszystkie wypowiedzi nie dotyczące tematowego zagadnienia.

  • #29 8446905
    blue_17
    Poziom 32  
    Więc czas zamknąć temat bo rzeczywiście dyskusje zabrnęły gdzieś daleko :D

    Dziękuje wszystkim za porady ale rzeczywiście po baskom-ie przyjdzie czas na C bo wydaje mi się najefektowniejszy razem ze wstawkami assemblerowymmi.

    Co do baskoma to powiem tak że przerażają mnie zasady w nim przynajmniej teraz i pamięciożerność komend, zobaczymy jak mi pójdzie pozdrawiam.
  • #30 8447373
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA