Hallo liebe Interessenten,
ich habe mir das Buch gekauft um etwas mehr über die Microcontroller von Atmel zu erfahren. Da schadet es auch nicht die schon etwas eingerosteten C/C++ Kenntnisse aufzufrischen. Die Lieferung von Amazon war wie immer sehr schnell in Sachen Bücher usw. Sonntag bestellt und Montag da!
Zum Buch selbst, nach einer kurzen Einführung was ein Microcontroller ist und wie er arbeitet (Schemadarstellung und Schaltbild) geht's auch schon los mit dem Crashkurs in C. Die recht kurz gehaltene Erklärung zum Thema Kompilier und Linker (extrem oberflächlich erklärt, keine Einstellungsmöglichkeiten oder Parameter werden gezeigt) sowie ein Ausschnitt zum Thema Header und Source-Dateien legt das Fundament der späteren Programme. Die Präprozessor-Anweisungen sind etwas besser erklärt und mit einigen Beispielen leicht nachzuvollziehen.
Nun sind Variablen und Umrechnungen von Dezimal in Hex- und Binärschreibweise dran. Hier das Erstaunen, beim Versuch die Beispiele nachzurechnen, kamen völlig andere Ergebnisse raus. Auch Google und der gute alte Windows Rechner hatten meine Version (zum Glück) bestätigt. Nach Meinung des Autors ist 53 = 0b00101011 = 0x2B. Die Zahl müsste aber 43 sein. Dieser Fehler ist 2-mal auf der Seite 37 zu finden und führt zu Verwirrung in den nachfolgenden Beispiel.
Mit der Ansicht, Fehler können mal vorkommen geht's weiter mit den ersten Beispielen zur Programmierung. Hier sei noch erwähnt, es wir nicht erklärt wie der Controller Programmiert oder was genau dazu benötigt wird. Das Wissen sollte man sich dann aus dem Netz besorgen (Google oder Mikrocontroller.net). Die ersten Beispiele in C sind ausreichend mit Kommentaren versehen auch eine Assembler Abhandlung liegt in äquivalenter Form vor. So kann der Leser leicht erkennen, wie viel Zeit und Schreibarbeit er sich sparen kann, wenn er C als Sprache verwendet. Doch leider sind in den Beispielen einige Fehler gemacht wurden, die der Compiler nicht übersetzen kann. Weiterhin sind Symbole oder Definitionen einfach vertauscht wurden. Auf Seite 77 wird das Interrupt für INT0 aktiviert mit dem Register GCICR |= (1<<INT0). Jedoch Existiert dieses Register überhaupt nicht. Es muss GICR heißen wie es zwei Seiten zuvor erläutert wird. Das ist noch lange nicht alles.. dennoch komme ich hier mal zum Schluss.
Fazit: Wer schon etwas Erfahrung in C/C++ hat und gerne Fehler im Quellcode mit Hilfe der Compilererrors und Google sucht und behebt, wird sicher Spaß an diesem Buch haben, wenn auch nicht sehr lange. Ich will hier nichts überdramatisieren, jedoch wird schon einiges an Wissen über Elektronik zum Nachbau der Schaltungen vorausgesetzt. Auch sollten Fehler im Quellcode nicht auftreten, wenn die Programme vorher Tests durchlaufen hätten. Zur reinen Einführung ist das Buch nicht geeignet, als kleine Beispielreferenz ist es ausreichend.