AVR-Mikrocontroller-Kochbuch     

von Irmtraut Meister und Lukas Salzburger                

Buchbesprechung von Ralf Beesner
                    Elektronik-Labor  Projekte  Lernpakete  Literatur                  


Unter "Kochbuch" hatte ich mir spontan eine dicke Sammlung kompletter Gerichte vorgestellt, also Schaltpläne und vollständige einsatzfähige Software. Diese Erwartung wurde nicht erfüllt. Aber ich finde das Buch dennoch interessant und nützlich, denn man lernt mit ihm nicht, einzelne Gerichte 1:1 nachzukochen (blind nach Anleitung), sondern man bekommt das Handwerkszeug, mit dem man seine eigenen Gerichte komponieren kann.

Was sollte man an Vorkenntnissen mitbringen?


Eigentlich bräuchte man so gut wie keine Hardware-Kenntnisse. Das Buch setzt nur sehr wenig voraus und bemüht sich sehr, auch die Leser mit sehr wenig Hardware-Kenntnissen "abzuholen und mitzunehmen". Die Fülle des Stoffes wird jedoch überschaubarer, wenn man z.B. zumindest ein paar einfache Analog- und Digital-Schaltungen auf einem Steckbrett zusammengesteckt hat und die Beuteile dimensionieren kann.
Eine nicht ganz unwichtige Voraussetzung findet sich weder im Klappentext, noch im Vorwort, sondern erst in der Einleitung: man sollte etwas C können.
Zielgruppe des Buches sind Leser, die nicht zum ersten Mal im Leben C-Code sehen, sondern schon etwas Berührung mit C hatten; z.B. auf dem PC.
Es reichen aber wenige Grundkenntnisse, sofern man ein allgemeines C-Buch hat, in dem man im Zweifelsfall nachschlagen kann.
Die zahlreichen Beispiele im Buch sind recht kurze, ausführlich kommentierte Codeschnipsel, die sich mit den Besonderheiten von C auf Mikrocontrollern befassen (für allgemeine C-Programmierer sind dies das Hantieren mit einzelnen Bits, insbesondere Registerinhalten oder Portpins; hier liegt der Schwerpunkt der Code-Beispiele, nicht in umfangreichen Berechnungen).

Was kann man hinterher?

Hardware
Man lernt die internen Hardware-Komponenten eines Mikrocontrollers (speziell der Serie AtMega48-AtMega328) und die externe Grundbeschaltung (Quarz, Stromversorgung) eines Mikrocontrollers kennen, man lernt gängige Sensoren kennen, man lernt, wie man Eingangssignale für den Controller aufbereitet (z.B. Spannungsteiler, Shunts, Operationsverstärkerschaltungen, Messgleichrichter, Schutzschaltungen) und wie man die Ausgangsignale weiterverarbeitet (mit LEDs, Siebensegmentanzeigen, Relais, Halbleiterschaltstufen bis hin zu Thyristoren und Triacs), und die Arbeitsweise der gängigen Bussysteme (I²C und SPI).
Das alles wird nicht nur abstrakt-theoretisch abgehandelt, sondern es finden sich auch viele praktische Dimensionierungen und viele Hinweise, wie man bei der Schaltungsauslegung typische Fallstricke und Fallgruben meidet (in die ich auch schon gefallen bin).

Software
Die Ausführungen zur Programmierumgebung (AVR-GCC und AVR Studio), dem Grundgerüst eines C-Programms und dem Flashen des Controllers sind recht kurz und allgemein gehalten.
Nach dem Galoppritt durch die Grundlagen ist der Schwerpunkt die Parametrierung der internen Ein-und Ausgangs-Baugruppen des Mikrocontrollers und das Hantieren mit den Eingangs- und Ausgangsdaten (Stichworte: digitale IOs, AD-Wandler, I²C, SPI, PWM, externe DA-Wandler). Zahlreiche gängige Aufgabenstellungen werden kochrezeptartig abgehandelt.
Das klingt ziemlich "dröge", ist aber äußerst nützlich, weil hier nebenbei ein großer Teil der Infos kurz und knackig abgehandelt wird, die man sonst mühsam aus hunderten Seiten der englischsprachigen AVR-Datenblätter zusammensuchen müsste.
Das Buch ist daher nicht nur ein Lehrwerk, sondern ein Nachschlagewerk, das dem Leser viel Zeit und Mühe spart.
Wertvoll ist in diesem Zusammenhang, dass die Autoren sich nicht auf den weitverbreiteten AtMega8 "eingeschossen" haben, sondern auf die neuere AtMegaX8-Serie (48,88,168,328), denn der Registeraufbau der AtTinies der Serien X4,X5 und X6 ähnelt der AtmegaX8-Serie stärker.

Allgemeines
Die Autoren pflegen einen sehr kompakten und schnörkellosen Schreibstil. Es gibt keine Bandwurmsätze, keine Längen und es wurde nicht "Seitenhonorar geschunden", sondern möglicht viel Information transportiert.
Stil und Rechtschreibung finde ich gut, allerdings hätte das Buch noch besser korrekturgelesen werden können; mir fiel etwa ein halbes Dutzend kleiner Schreib- und Flüchtigkeitsfehler auf, die wohl bei einem in geringer Auflage erscheinenden Buch schwer zu vermeiden sind (zwei Beispiele: in einem Codeschnipsel wird mit PB1 und PB3 gearbeitet, im erläuternden Text ist jedoch von PB1 und PB2 die Rede. In einer Formel zum Transimpedanzverstärker steht sinngemäß U=I+R statt U=I*R).

Das Buch hatte mich hauptsächlich wegen der C-Programmierung interessiert. C ist meiner Meinung herzlich ungeeignet für Mikrocontroller, aber in der IT setzen sich ja häufig die "beklopptesten"  Standards durch.
Statt "PortB.1 = 1 : PORTB.2 = 1" (Bascom) schreibt man nun mal in C "PORTB |= (1<<PB1) | (1<<PB3);"
Da C sehr stark konfigurierbar ist, versuchen manche Software- bzw. Buchautoren, sich und den Lesern das Leben einfacher zu machen, indem sie solche Konstrukte durch lesbarere Makros ersetzen. Leider hat da jeder seinen eigenen Standard ;-) . Gut finde ich daher, dass die Autoren konsequent die "unlesbaren" Konstrukte verwenden, denn nur so lernt man sie....
R.B.

Inhaltverzeichnis und Leseprobe im ELO-Shop: AVR-Mikrocontroller-Kochbuch    



Elektronik-Labor  Projekte  Lernpakete  Literatur