Pfad: Home => AVR-Überblick => Arduino's Fluch    (This page in English: Flag EN Logo
Bye bye, Arduino

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: 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.

Dass der ATmega328 noch ganz anderes kann als die Arduino-Konstrukteure übrig gelassen haben, sieht man an der folgenden Tabelle.
EigenschaftArduinoATmega328
TaktungQuarz 16 MHz Interner 1 MHz-RC-Oszillator mit CLKDIV
1/2/4/8-MHz ohne CLKDIV
31 kHz - 8 MHz mit CLKPR
interner 128 kHz RC-Oszillator
Low-Frequency-Quarz (32,768 kHz)
Low-Power-Quarzoszillator
Quarzoszillator
ProgrammierungBootloaderISP-Schnittstelle
Bootloader
Serielle Schnittstellen2*TWI/I2CUART
2*TWI/I2C


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