Książkę posiadam praktycznie od momentu premiery, czyli od 2011 roku. Przeczytałem ją przez te lata od deski do deski dwa razy, a jeszcze częściej korzystałem z niej w celu znalezienia konkretnych wskazówek lub zestawień konfiguracji. Jest to pozycja pod wieloma względami niezwykła na rynku i na pewno warta Waszej uwagi. Nadszedł czas, bym z perspektywy czasu ocenił jej zawartość. Zapraszam do mojej recenzji.

Dla kogo są „Mikrokontrolery AVR”?

Książka pana Mirosława Kardasia (znanego w internecie pod nickiem mirekk36) była i jest reklamowana jako książka głównie dla osób rozpoczynających swoją przygodę z programowaniem mikrokontrolerów AVR w języku C. Na stronie należącego do autora wydawnictwa ATNEL, można zakupić zestawy uruchomieniowe ATB, które są wybawieniem dla osób, które nie tylko nie znają AVR od strony programowania, ale również od strony elektroniki. O zestawach ATB się nie wypowiem, bo sam posiadałem samodzielnie złożoną płytkę ZL3AVR – PCB zakupione w promocji w sklepie AVT, części zdobyte w osiedlowym sklepie (oraz zamawiane przez internet). Dzisiaj PCB jest już niestety wycofane ze sprzedaży, a złożony zestaw kosztuje ponad 300 zł. Moim zdaniem nieco za dużo jak na sprzęt dla początkującego programisty, zwłaszcza, że można obecnie znaleźć zestawy o podobnych możliwościach za mniej niż 60% tej ceny. Dodam, że oprócz zestawu potrzeba jeszcze programatora – kolejny wydatek, tym razem rzędu 30-60 zł.

Zestaw uruchomieniowy ZL3AVR firmy KAMAMI

Zestaw uruchomieniowy ZL3AVR firmy KAMAMI

Zestaw uruchomieniowy ATB firmy ATNEL

Zestaw uruchomieniowy ATB firmy ATNEL

Wrażenia i przemyślenia – mój prywatny „use case”

Gdy pierwszy raz czytałem książkę, nie sądziłem, że jestem typowym „czytelnikiem docelowym”. Był to czas, w którym C znałem już dość dobrze, ale preferowałem używanie BASCOM-AVR, bo zawsze bardziej zależało mi na jak najszybszym uruchomieniu układu/robota, niż na jakości samego kodu. Usprawiedliwiałem się tym, że jest to dobre podejście, bo szybko widać efekty i człowiek się nie zniechęca, choć czasem „karma” wracała i odkrywałem coraz poważniejsze negatywne efekty takiego podejścia.

Mikrokontrolery AVR

Tak naprawdę to tylko wydawało mi się, że dość dobrze znam C dla AVR. Potrafiłem skonfigurować potrzebne mi peryferia korzystając tylko z noty katalogowej procesora, co uważałem za najwyższy szczyt wiedzy… Prawda jest taka, że znałem tylko drobne fragmenty całości, nie rozumiałem w pełni mikrokontrolerów. Nadal mam ogromne luki, których już pewnie nie uzupełnię w kontekście AVR, ale przeczytanie książki pomogło mi:

  • uświadomić sobie, że „wiem, że nic nie wiem”, a raczej „wiem, że niczego do tej pory nie wiedziałem”,
  • uzupełnić luki w wiedzy i zbudować w głowie bardziej spójny obraz tego, co się dzieje w moim mikrokontrolerze,
  • w pełni (a nie tylko „przez skórę”) zrozumieć różnice w konfiguracji np. timerów,
  • nauczyć się szukać wartościowych informacji w notach katalogowych, umieć je wydobyć nawet z lakonicznych strzępów tekstu,
  • nabrać pewności siebie w temacie programowania AVR – paradoksalnie, bo równocześnie uświadomiłem sobie moją niewiedzę,
  • patrzeć na BASCOM z ukosa…
  • rozbudzić pasję i nabrać apetyt na dalsze samodoskonalenie się w tematyce programowania systemów wbudowanych.

Książka została podzielona na 3 części:

  • Budowa, architektura i działanie mikrokontrolerów AVR
  • Ogólne zagadnienia języka ANSI C
  • Ćwiczenia i przykłady
Z natury jestem praktykiem i najchętniej każdą jedną nowo poznaną rzecz chciałbym przetestować w praktyce – zobaczenie, jak teoria „działa” zawsze było dla mnie ogromną motywacją, a czasami jedynym bodźcem, który był w stanie zmusić mnie do dalszego wgryzania się w teorię. Bez przykładu podanego na tacy, oczy zaczynają mi się kleić albo irytuję się, że przechodząc do kolejnego zagadnienia zapomnę wszystko z obecnego. Wydzielenie ćwiczeń i przykładów i umieszczenie ich na samym końcu książki jest – moim zdaniem – chybionym pomysłem. Wydaje mi się, że lepszy efekt zostałby osiągnięty, gdyby autor każdą nową funkcję, albo przynajmniej każdy podrozdział zakończył zestawem prostych przykładów; krótkim kodem, który „coś robi”.

Dużym pozytywem jest natomiast dołączana do książki płyta DVD. Zawierała ona fantastyczne lekcje wideo, dokumenty oraz narzędzia potrzebne do programowania AVR. Zawierała – bo po dość intensywnej eksploatacji, płyta odczytuje się z trudem i nie wszystko pozwala otworzyć. Na szczęście obecne na rynku drugie wydanie zawiera w zestawie pendrive, czyli nieco trwalszy nośnik. Jeśli jednak traficie na edycję z DVD, to sugeruję zrobić kopię zapasową do prywatnego użytku i trzymać ją gdzieś na dysku – wiadomo, jak to bywa dzisiaj z płytami…

Mikrokontrolery AVR - zestaw z DVD

Mikrokontrolery AVR – zestaw z DVD

Mikrokontrolery AVR - wydanie II w twardej oprawie i z pendrajwem

Mikrokontrolery AVR – wydanie II w twardej oprawie i z pendrajwem

„Mikrokontrolery AVR. Język C. Podstawy Programowania” Mirosława Kardasia to jedna z najważniejszych książek w mojej bibliotece, chociaż nie najważniejsza. Na pewno jest to lektura, którą warto jest mieć w formie papierowej zawsze pod ręką – szczególnie na początku swojej przygody z AVR. Istnieją spory i dyskusje, czy dzisiaj w ogóle warto zaczynać od procesorów 8-bitowych, czy może lepiej wziąć się od razu za 32-bitowce. Moim zdaniem warto. Żadnego 32-bitowca nie poznacie tak dobrze, jak poczciwą ATmegę, a dobrze poznany mikrokontroler 8-bitowy będzie znakomitym zasobem doświadczenia i wiedzy. Krótko mówiąc – oswoicie się z koncepcją działania mikrokontrolerów, a – jak mawiał mądry Mały Książę – poznaje się tylko to, co się oswoi 🙂 Ta książka Wam w tym pomoże.

A tutaj przykład, w jak ciekawy i przystępny sposób pan Kardaś potrafi wytłumaczyć nawet „nudne” tematy: