Pfad:
Home =>
AVR-Überblick => Arduino's Fluch
(This page in English:
Arduino's Fluch
Der Mensch ist ein Gewohnheitstier: hat er sich erstmal an etwas gewöhnt, dann
kriegen ihn auch 10 Pferde nicht zum Umgewöhnen. Und wenn es auch absoluten Unsinn
produziert: er bleibt dabei. Was der Bauer halt nicht kennt, frisst er halt auch nicht.
Die Nebenfolgen: die Sicht auf die Welt verengt sich. Was mit dem Gewohnten nicht geht,
gibt es halt einfach nicht. Oder es werden wahnsinnige Umwege gegangen, um mit einem
ungeeigneten Werkzeug vielleicht doch noch zum Ziel zu gelangen.
Und in den letzten Jahren ist es absolut in geworden, sich an ein kleines Platinchen zu
ketten. Mit ebenso wahnsinnigen Nebenfolgen:
- Das Platinchen bestimmt darüber, in welcher Sprache wir mit Mikroprozessoren
kommunizieren. Die Sprache ist nicht mehr Werkzeug, sondern engt die Wahrnehmung
ein: Was nicht C ist, kann nix sein (weil ich es rein gar nicht verstehe).
- Des Platinchen's Fähigkeiten bestimmen die Richtung dessen, was wir machen.
Wenn wir halt 32 Pins brauchen, um ein LED-Grab mit vielfältigen Farben
anzusteuern, liefert das Platinchen aber nicht so viele. Daraufhin lassen wir die
Projektidee sausen und machen lieber was Anderes.
- Das Platinchen verengt auch unsere Aufmerksamkeit: vom Selbermachen zum blinden
Nachmachen. Es ist ab jetzt nicht mehr nötig, sich mit den Innereien zu befassen.
Jede weitere Bibliothek, die wir irgendwo in den Tiefen des Internets finden, verengt
unsere Wahrnehmung weiter: wir werden Sklaven dieser Bibliotheken und wenden nur noch
das an, wofür Andere schon Hirnschmalz verschwendet haben. Das nennt man dann
geistige Verkümmerung.
Wie bei jeder guten Droge beginnt die Suchtkarriere mit einem niedrigen Preis: zwanzig
bis vierzig Euro kostet ein Arduino. Verglichen mit einem nackten ATmega328, den es
für ein Zehntel dieses Preises zu kaufen gibt, schon mal ein gehöriger
Aufschlag, der sich kaum aus dem eingebauten 16-MHz-Quarz, der verbauten Billigstfassung,
dem Standard-Spannungsregler und einigen Widerständen und Kondensatoren rechtfertigen
lässt. Dafür hat der künftige Süchtige damit schon alles, was er
braucht, um gehörig süchtig zu werden.
Die im Paket mitgelieferten Beispiele funktionieren jedenfalls schon mal prima, dazu
muss man nur in der Lage sein, Hilfeseiten zu lesen. Irgendwelche Kenntnisse des Prozessors
und der Hardware sind da überflüssig und vielleicht sogar störend. Und damit
beginnt die Sozialisation schon: mit Null Wissen Vorgefertigtes zum Laufen bringen. Das wird
ab jetzt die normale Geisteshaltung des Users. Wie ein verwöhntes Kindchen ist er ab
jetzt mit Null Geduld und Lernwillen unterwegs, und meidet alles, was nicht auf Anhieb das
macht, was er gerade jetzt so will.
Wenn da nicht nur die Hürde C wäre. Über die muss der User drüber, wenn
er denn mal was Eigenes machen möchte. Ab jetzt ist auch noch seine Sprache kastriert,
denn was anderes als C hat so viele Hürden, dass man keinem raten kann, das auf sich
zu nehmen. Merkst Du schon, warum Assembler komplizierter ist? Nun, wenn man nur einen
riesigen Amboss hat, für den ist eine Feinmechanikerzange halt nun mal kein
passendes Werkzeug.
Und dann geht es los mit der Suche nach Bibliotheken. Das sind Softwarestücke, die
Andere programmiert haben, und die man dazu einsetzen kann, das Selberkönnen, -denken
und -wissen zu vermeiden. Die gibt es zuhauf, und sie machen alle irgendwas, wozu der nun
schon gehörig im Verständnisvermeiden Geübten zu faul ist zum Selbermachen.
Nach dem Motto "Wozu soll ich das Rad neu erfinden?" wird fröhlich
abgekupfert ("Wo lassen Sie denn denken?"). Das hält ihn weiterhin erfolgreich
davon ab, irgendetwas selber lernen und sich ausdenken zu müssen. Herzlich willkommen
bei der erfolgreichen Nachzucht der Nixversteher und Alles-nur-Zusammen-Klicker.
Von den 28 Pins des ATmega328 haben die Brettkonstruierer leider nur 12 übrig gelassen,
also weniger als die Hälfte, mit denen man was anfangen kann. Wer halt 13 oder 15 braucht
(geschweige denn 32 wie hier),
der ist mit dem Arduino voll aufgeschmissen und lässt es halt einfach. Oder macht es
wie die Computer-Zeitschrift c't: er baut einen seriellen Pin-Extender mit I2C-Bus. Das ist
zwar völlig überkandidelt, weil es Controller mit 40 Pins zuhauf gibt. Aber
der Anwender ist ja nun mal süchtig gemacht und lechzt nach einem ATmega328. Und bei
der schon eingeschrünkten Sichtwelt weiß er auch nicht, dass es ATmega16, 32
oder 324 günstig zu kaufen gibt. Also macht er sich das Leben lieber viel komplizierter
als es sein müsste und versucht es lieber mit Krücken als mit seinen eigenen
Beinchen - und ein wenig Hirn. Dass man mit 8 Datenpins und vier Auswahlpins, einem
4-zu-16-Decoder und sechzehn Stück 74HCT373 ganze 128 Datenpins hinkriegt, und zwar
mit Parallelschaltung ziemlich viel schneller als mit einem schwachsinnigen I2C-Datenbus,
wie hier, scheint auch dem
c't-Autor entgangen zu sein. Das zeigt, wozu vom Arduino eingeschränkte Sichtwelten
noch so alles führen. Mal eben schnell und hirnfrei irgendwelche Bibliotheken
zusammenzuzimmern, hilft halt oft nur wenig und führt schnell in Sackgassen.
Mein Rat: Lege das Platinchen mal zur Seite, nimm einen ATtiny13, löte einen
Widerstand mit 10 Kilo-Ohm) an seinen Reset-Pin und von der anderen Seite an
Plus, schließe RESET, SCK, MISO und MOSI an einen sechspoligen Flachkabel-Adapter
an und diesen an irgendeine ISP-Programmier-Hardware. Und lerne, wie man die Portpins,
den AD-Wandler und die Timer im ATtiny13 aktiviert. Ganz ohne Bibliotheken, und nur
mit dem Device-Databook bewaffnet.
Das hier zeigt,
wie es geht und wie man es hinkriegt. Wenn Du den ganzen oder auch nur den halben Kurs
durchgeackert hast, wird die Sehnsucht nach dem Platinchen weg sein und Du kannst Dich
als entwöhnt und geheilt ansehen. Arduino's Fluch hat dann seine Wirkung verloren
und beherrscht Dich nicht mehr. Du wirst sehen, es eröffnet sich eine ganz neue
Welt vor Dir und Du wirst die Entwöhnung als gewaltige Befreiung genießen.
zum Seitenanfang
©2020 by http://www.avr-asm-tutorial.net