Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

wtorek, 1 marca 2011

Recenzja: Język C dla AVR - Tomasz Francuz


Autor: Dondu

Język C dla mikrokontrolerów AVR.
Od podstaw do zaawansowanych aplikacji

Autor: Tomasz Francuz

Wydanie: lipiec 2011r.
Stron: 568

Wersja papierowa:
  • okładka miękka
  • format: 158 x 235 x 34
  • waga: 0,76kg
Wersja eBook w formatach:   

Autora znajdziesz na forum Elektroda.pl: tmf

Strona książki w:

eBook'ów szukaj w Helion lub eBookpoint - uwaga ceny mogą się różnić ze względu na promocje !!!



W styczniu 2015r. ukazała się rozszerzona wersja tej książki (patrz okładka po prawej), która ma znacznie większą zawartość o prawie 150 stron.

Wydanie: styczeń 2015r.
Stron: 712

Strona książki w:

eBook'ów szukaj w Helion lub eBookpoint - uwaga ceny mogą się różnić ze względu na promocje !!!


Niniejsza recenzja dot. obu wersji tej książki w zakresie wspólnej ich części.


Wstęp

Wiele zaawansowanych w języku C osób twierdzi, że:

Guru
Nie ma czegoś takiego jak język C dla mikrokontrolerów. Jest po prostu C!


Trudno się z tym nie zgodzić, bo C to język uniwersalny dla wielu platform, w tym także dla komputerów. Ale autorom książek takich jak ta przyświeca zupełnie inny powód, dla którego łączą opis języka C oraz mikrokontrolerów w jedną książkę. Robią to ponieważ:

Aby pokazać jak programować mikrokontroler, trzeba przedstawiać fragmenty kodu lub nawet całe programy.

A że język C, to podstawowy język wysokiego poziomu, używany przez większość komercyjnych firm produkujących urządzenia oparte o mikrokontrolery, to nawet producenci mikrokontrolerów w ich datasheetach operują właśnie tym językiem. Dostarczają oni także narzędzia do programowania (tzw. IDE) oraz gotowe biblioteki obsługi różnych peryferii jak LCD, karty SD, USB, itd. - wszystko napisane w języku C.

Innymi słowy, jesteś skazany na C :-)



O książce

Ta książka spełnia właśnie powyższe założenia, czyli pokazuje jak wkroczyć w świat złożony z języka C oraz mikrokontrolerów, na przykładzie najbardziej popularnych w Polsce (wśród początkujących i średnio zaawansowanych) mikrokontrolerów AVR firmy Atmel.

W książce znajdziesz:
  • jak wybrać i zainstalować środowisko do programowania (50 stron),
  • omówienie programatorów oraz jak zaprogramować mikrokontoler (20 stron),
  • podstawy języka C z (80 stron)
  • łączenie kodu C i assemblera (10 stron)
  • optymalizacja i debugowanie programu (15 stron),
  • oraz 384 strony dotyczące stricte mikrokontrolerów AVR

Nie opisuję dokładnie zawartości książki, ponieważ na stronie wydawnictwa dostępny jest kompletny spis treści oraz przykładowy rozdział.

Ta proporcja tematyczna oraz zawartość poszczególnych rozdziałów jest bardzo dobrze dobrana, przez co pozwala zawrzeć w jednej książce, zarówno podstawy języka C jak i wiedzę dot. mikrokontrolera AVR, w tym jego wszystkich wewnętrznych „bebechów” oraz podłączania zewnętrznych peryferii jak klawiatura matrycowa, LCD, pamięci, czujniki temperatury i wielu innych.

Na szczególną uwagę zasługuje kilka z pozoru drobnych spraw, o których wiedzę także w tej książce znajdziesz:
  • opis i sposoby wykorzystania bootloader'a,
  • wiedzę na temat specyfiki pisania programu na mikrokontrolery oraz wyszukiwania i usuwania błędów programu,
  • wiedzę na temat optymalizacji i debugowania programu,
  • kontroli integralności programu (tzw. sumy kontrolne),
  • zapewnienia bezpieczeństwa kodu,
  • łączenia C i języka assembler (tzw. wstawki assemblera) istotne w newralgicznych punktach programu (szybkość działania)

Znajomość powyższych tematów przydaje się szybciej niż się tego spodziewasz, a wiedza ta wcale nie jest tak oczywista jak może się wydawać.

Autor posługuje się bardzo przystępnym językiem, tłumacząc poszczególne tematy w sposób, który nawet młodej osobie w wieku od 14-15 lat nie powinny stwarzać problemów z jej przyswojeniem, a piszę to patrząc na swoje doświadczenia z pomagania na polskich forach dyskusyjnych.

W książce znajdziesz bardzo dużo mniejszych i większych fragmentów kodu pokazujących omawiane zagadnienia w praktyce. Tutaj przewagę nad wersją papierową ma eBook, ponieważ można te fragmenty kodu po prostu przekopiować Ctrl-C i Ctrl-V, zamiast przepisywać - oszczędność czasu :-)

Oprócz fragmentów kodów autor bogato ilustruje schematami elektroniki, wykresami i zrzutami ekranów. To bardzo pomaga w szybkim przyswojeniu wiedzy. Ja na blogu także stosuję tę zasadę, więc daje Ci to pojęcie, czego w tym zakresie możesz spodziewać się po książce.

Świetnym uzupełnieniem książki jest nadzorowany przez autora książki internetowy Kurs języka C z kompilatorem CManiak (online), gdzie zawsze możesz dokształcić się na gotowych przykładach.



Załączniki na serwrze FTP

Oprócz książki, autor przygotował bogatą zawartość w postaci gotowych programów w języku C dla mikrokontrolerów AVR, która jest dostępna na dysku FTP wydawnictwa Helion (link na początku artykułu). Spakowany zbiór liczy 1,5MB.

Takie rozwiązanie pozwala Ci mieć dostęp do tych plików w każdym momencie, a dodatkowo przed zakupem książki możesz je przeglądnąć, by zobaczyć, co Ciebie czeka :-)

Zbiór jest bogaty i zawiera 28 kompletnych przykładów obejmujących między innymi:
  • obsługę enkoderów obrotowych,
  • klawiatury matrycowej,
  • przycisków wraz z eliminacją drgań styków (deboucing),
  • sterowanie wyświetlaczem 7-io segmentowym,
  • klawiatury na ADC,
  • ADC w trybie redukcji szumów,
  • termometr analogowy LM35,
  • LCD,
  • ekspander portów,
  • 1wire,
  • bootloader,
  • i wiele innych.



Autor dostępny na forum

Niebagatelną zaletą jest fakt, iż autor książki jest bardzo aktywnym uczestnikiem Działu Mikrokontrolerów na forum Elektroda.pl, a znajdziesz go pod nickiem tmf. Z chęcią odpowiada na zadane tam pytania nie tylko dotyczące wiedzy zawartej w książce. Bardzo miły w kontaktach i dysponuje naprawdę ogromną wiedzą.


eBook rulez!

W tym przypadku szczególnie polecam wersję eBook, ponieważ:
  • jest pozbawiona problemu jakości papieru
  • umożliwia automatyczne wyszukiwanie tekstu w książce (bardzo pomocne!),
  • umożliwia kopiowanie fragmentów programów (Ctrl-C oraz Ctrl-V),
  • umożliwia noszenie jej zawsze „przy sobie”,
  • eBook jest tańszy o około 20zł :-)
  • dostępny w wersjach PDF, ePub, Mobi.
eBook'ów szukaj w Helion lub eBookpoint - uwaga ceny mogą się różnić ze względu na promocje !!!



Podsumowanie

Bardzo dobra i spójna pozycja, która jest zarówno dla początkujących jak i zaawansowanych.

Zalety:
  • połączenie we właściwych proporcjach wiedzy o języku C i mikrokontrolerach AVR firmy Atmel,
  • właściwie dobrana zawartość merytoryczna języka C (wybrane najważniejsze tematy, spójna całość),
  • opisane wszystkie "bebechy" mikrokontrolerów AVR oraz wiele peryferii zewnętrznych,
  • przystępny język bez zbędnych dłużyzn,
  • dostępność w formie tańszego eBook’a,
  • autor dostępny na forum,
  • ta książka plus książka dot. XMega, to spójna całość i wielkie możliwośći.


Wady
Co do części merytorycznej nie mam najmniejszych zastrzeżeń. Jedynie papier ... szkoda, gdyż książka zasługuje na lepszy ... ale na szczęście istnieje wersja eBook :-)



Moim zdaniem
(opinia z dnia 25 września 2012r.)

Książka ta jest najlepszą polskojęzyczną książką o mikrokontrolerach AVR oraz ich programowaniu w języku C. Zawartość merytoryczna kompletna i dobrze dobrana. Proporcje wiedzy o mikrokontrolerach i C są prawidłowo rozłożone. Faktycznie nauczysz się od podstaw (podłączenie, programowanie, itp.), aż do zaawansowanego wykorzystania „bebechów” mikrokontrolera - tytuł nie jest na wyrost.

Przy akceptowalnej cenie (lub tańszej w wersji eBook) pozwala na szybkie nauczenie się wykorzystywania mikrokontrolerów do budowy prostych oraz zaawansowanych urządzeń elektronicznych.

Jeżeli znasz już podstawy języka C, to wystarczy kilka, kilkanaście stron, by poznać jego niuanse dot. wykorzystania do programowania mikrokontrolerów AVR, i szybciej przejdziesz do właściwej części dot. samych mikrokontrolerów.

W szczególności polecam ją uczniom szkół ponadgimnazjalnych oraz studentom.

Z opiniami innych posiadaczy tej książki możesz zapoznać na jej stronie w wydawnictwie Helion oraz eBookpoint.



Rada dla całkiem początkujących

Czytając takie książki jak ta, nie należy pomijać rozdziałów ufając w swoją wiedzę, bo może się to obrócić przeciwko Tobie :-)



Zobacz inne książki 

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

22 komentarze:

  1. Jest możliwość ściągnięcia całej tej książki w formacie pdf za darmo?

    OdpowiedzUsuń
  2. Niestety nie. Prawa autorskie majątkowe ma zapewne Helion.
    Ale można obserwować blog na FB i tam informuję, gdy są promocje - czasami nawet kilkadziesiąt procent.

    OdpowiedzUsuń
  3. Nie znam C. Pisałem trochę w bascomie. Czy dam radę "ogarnąć" C z tej książki ?

    OdpowiedzUsuń
  4. Przesiadka z BASCOM na C, to z reguły trudne zadanie i niestety zależy od indywidualnych zdolności. Choć zdarzają się wyjątki. Ale zawsze, gdy coś jest niezrozumiałe dla czytelnika można dopytać autora książki na forum Elektroda.pl (ma nick: tmf).

    OdpowiedzUsuń
  5. Moim zdaniem ta książka to rewelacja. Wszystko opisane ze szczegółami. Ja kupiłem tą książkę, aby poznać język C, a w praktyce okazało się, że książka zawiera bardzo dużo informacji, które ułatwiły mi programowanie w asemblerze. Niuanse, które są zwykle pomijane w innych książkach tutaj sa dokładnie omówione co umożliwia uniknięcie wielu pułapek podczas programowania. Np dotyczy to opisu fusebitów, sposobów konfiguracji oprogramowania czy też różnic pomiedzy mikrokontrolerami. Książka nie nadaje się dla osób, które nie znają podstaw języka C tak jak ja ale za szczegółowość i przystępny sposób opisów polecam ją wszystkim maniakom AVRów.

    OdpowiedzUsuń
    Odpowiedzi
    1. Podstawy C są według mnie wystarczająco dobrze opisane, a jeżeli ktoś będzie miał nadal problem to zawsze może poćwiczyć w naszym Kursie C wraz z kompilatorem online CMAniak. Ważniejsza jest jednak wiedza dot. mikrokontrolerów i tutaj opisałeś bardzo konkretne zalety tej książki - szczegółowość informacji.

      Usuń
  6. Jednak proszę nie zapominać, że książka jest napisana dla osób, które miały jakakolwiek wiedzę o języku C i samych mikrokontrolerach. Dla ścisłości sam ją kupilem(ebook) i jest to moja opinia. I kilka podobnych opini slyszalem od osób które maja większą wiedze na temat AVR i samego C i mimo to wybrali inna.
    Pozdrawiam

    OdpowiedzUsuń
  7. Zakupiłem ebooka i z ciekawości zapytam, czy w wersji drukowanej zrzuty ekranu również są czarno-białe?

    OdpowiedzUsuń
  8. W Empiku jest przecena na wersje papierowa - cena 78,99.

    OdpowiedzUsuń
  9. Czy do tej książki została wypuszczona jakaś errata?

    OdpowiedzUsuń
    Odpowiedzi
    1. Jak w przypadku każdej książki Helionu errata jest na ich stronie internetowej w zakładce Szczegóły/Errata.

      Usuń
  10. Książkę zakupiłem w ebookpoint. Widzę, że jest kilka poprawek zgłoszonych przez czytelników, które nie zostały zweryfikowane przez wydawnictwo. Czyli w sumie oficjalnej erraty nie ma. To co ja znalazłem akurat nie ma na powyższej liście. Niestety nie jestem aż takim orłem w kwestii programowania żeby zajmować stanowisko. Chodzi o dwa przypadki:
    - strona 99 - Nie rozumiem dlaczego w drugim przykładzie sumy wyłączającej na tej stronie, jest x^=b. Po co jest zmienna x i w ogóle cała trzecia linijka kodu, skoro poniżej jest napisane, że nie wykorzystujemy zmiennych pomocniczych?
    - strona 100 - Czy podczas przesunięcia bitowego o jeden bit w prawo liczby ujemnej, jej znak też przechodzi z b7 na b6? Bo tak właśnie pokazano na przykładzie a co w sumie przeczy arytmetyce gdyż przesunięcie w prawo o jedno miejsce jest niejako dzieleniem przez 2. Przykład pokazuje, że przesuwając w prawo o jeden bit reprezentację bitową liczby -51 otrzymamy -89 a nie jak powinno być -25.
    Będę wdzięczny za sprawdzenie moich znalezisk i chociaż krótki komentarz. Dziękuję i pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. Z XOR jest istotnie błąd w starym wydaniu. Co do przesunięcia bitowego w prawo liczby ze znakiem to taka operacja jest w C niezdefiniowana, to co się stanie zależy od kompilatora. gcc robi tak jak jest to opisane w książce, w efekcie jest poprawnie -25, liczby ujemne zapisywane są w kodzie uzupełnień do dwóch, a nie znak + liczba.

      Usuń
    2. No tak... kod uzupełnień do dwóch... to wiele wyjaśnia. W takim razie to co napisałem wyżej odnośnie strony 100 jest niepoprawne. Nie ma tam błędu a operacja pokazuje przesunięcie bitowe w prawo liczby -77. Po operacji otrzymujemy -39 czyli wszystko gra. Sorry za zamieszanie.

      Usuń
  11. tmf, bo w drugim wydaniu wykorzystujesz xplained mni (czytałem jak dotąd tylko próbkę) i mam pytanie, czy jakbym posiadał zwykły prog/debug (np dragona/atmel ice, bo i tak dłużej przy atmegach nie zostanę), to czy dam radę zrobić wszystkie przykłady po prostu na "gołych" atmegach 328/168 bez dużych komplikacji? "Wymagane części" – to brzmi groźnie, zwłaszcza jak nie dokońca wiesz, co cię dalej czeka ;)
    Czy xplained ma jeszcze jakieś atuty, o których w próbce i którymś z tutejszych artykułów nie doczytałem? (oprócz USB i drugiego procka)

    OdpowiedzUsuń
    Odpowiedzi
    1. Wszystko zrobisz na "gołej" ATMega, Xplained ma tylko zaletę dla osób nieposiadających programatora/debugera - ma go na pokładzie. Jedynie przykłady z USART będą wymagały układu MAX232 i kabelka - w Xplained jest wirtualny USART przez USB, więc nie są potrzebne dodatkowe układy. Ale to niewielki problem.

      Usuń
    2. W grę wchodzą niestety tylko rozwiązania z USB. Czy będę do tego potem potrzebował jeszcze czegoś podobnego do: http://www.ebay.com/itm/DIP16-IC-Socket-Adapter-USB-to-TTL-Converter-Module-w-CP2102-Chipset-/201293510858?pt=LH_DefaultDomain_0&hash=item2ede0738ca na ebayu jest tego masa i za grosze... max232 to jest USART<>rs232 co mnie nie satysfakcjonuje, bo mam w komputerze tylko USB. Może jakieś ft232? Tylko że o tym akurat w ogóle nic nie wiem ;)

      Usuń
    3. Ten kabel jest ok, chociaż niektórzy piszą, że ten chipset jest niestabilny. Zapewne lepiej byłoby kupić konwerter z FT232 na pokładzie. Jeśli bardziej interesuje cię USB, to może zainteresuj się XMEGA - one mają interfejs USB na pokładzie, Na tym blogu pokazałem jak go wykorzystać do emulacji RS232. O XMEGA masz też dwie moje książki - są trochę bardziej zaawansowane, ale za to masz do nich mnóstwo przykładów, w tym przykładów bardzo interesujących - generowanie obrazu TV, magnetofon cyfrowy, odtwarzacz mp3, datalogger itd. Zapewniam cię, że przy XMEGA zostaniesz na dłużej, bo po prostu bardzo dużo oferują.

      Usuń
    4. Ok! Jakoś pokombinuję... na ebayu są różnorakie, więc i ft232 się znajdzie.
      Wolę powolutku – najpierw trochę Atmegi, potem XMEGA (atmegi są bardzo odporne na początkujących, np. dzisiaj włożyłem jedną odwrotnie do podstawki na pcb tak, że miała zamienione VCC i GND i tak się nagrzała, że nie mogłem jej dotknąć, ale nadal działa; XMEGA by raczej dymił, a są droższe), najwyżej po prostu nie wykonam przykładów z USART-em, albo zamiast kompa wezmę drugi uC ;)
      Dzięki tmf!

      Usuń
    5. XMEGA raczej są tańsze - 128A1U kosztuje 12 zł, 8E5 6-9 zł. Ale to nieistotne. Pamiętaj, że jeśli procek się tak nagrzał to niekoniecznie będzie poprawnie funkcjonował. Może się tak wydawać, ale w pewnych sytuacjach zacznie działać "dziwnie".

      Usuń
    6. Dzięki! Już go wykorzystałem do zadań, które wykonuje poprawnie (jak na razie)
      Brzmi zachęcająco, zwłaszcza jak przeczytałem listę peryferii... W tme nawet ładny asortymencik, ale żadnego z tych dwóch nie mieli :( Niestety w sklepie, w którym dotychczas kupowałem najtańsze to 20 zł, ale widzę że nie jest tak źle, a sklep łatwo zmienić.
      Nie widziałem atmeg za 50 zł :P choć przyznam szczerze – dużo nie szukałem.
      Nie jestem zbyt zaawansowany i nie umiem dobrze korzystać z peryferii, dla tego postanowiłem zacząć od atmegi. Z resztą jak Dondu pisał: "nie strzelaj do muchy z armaty", a u mnie to tak by wyglądało, bo moje pomysły nie są zbyt wymagające.

      Na stronie heliona pod obiema tymi książkami są te same opinie, co jest mało fajne, bo pod tą nowszą masz też opinie z 2013 i nie wiesz, kto o czym pisze. Da się coś z tym zrobić? Niektóre opinie bardzo zniechęcają, ale z pewnością dotyczą starszego wydania (sądząc po dacie).

      Usuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.