Kleiner Arduinodepp will hoch hinaus..

Hallo,

ja, der Threadtitel liest sich leicht provokant. Warum dies so ist, möchte ich umgehend kurz erklären. :cold_sweat:

Ich bin über den Bau von Multicoptern auf die Arduinoplattform gestoßen und habe seitdem diverse kleinere Projekte realisieren können. Nach wenigen Monaten merkte ich, dass die Arduinoplattform keine neue Programmiersprache darstellt, sondern lediglich eine vereinfachte Variante von C++ ist.

Da ich mich zuvor noch nie mit programmieren beschäftigte, kannte ich C++ lediglich vom hörensagen.

Meine Projekte wurden jedenfalls immer umfangreicher und ich stieß in letzter Zeit immer öfter an die Grenzen der arduinoischen Befehlsmöglichkeiten.

Die ersten konkreteren Berührungen mit C++ machte ich mit diversen string.h-Befehlen, sizeof oder auch zuletzt durch die Implementierung von pgmspace.h.

Leider fällt mir die Anwendung der C++ "Befehle" noch immer sehr schwer, da sich die im Netz zu findenden C++_Beispiele oftmals nicht direkt auf Arduinoisch "übersetzen" lassen. Dies beginnt bereits bei der Einbindung einer Bibliothek.

Oft komme ich mir vor wie ein kleiner (Arduino-) Depp, der lediglich an der Oberfläche von "was ganz Großem" rumkratzt. Daher also auch der Threadtitel.

Hier nun meine Frage:

Habt Ihr mir Tipps/ Empfehlungen um meinen jetzigen Kenntnisstand so sinnvoll wie möglich zu erweitern und bin ich hier der Einzige, dem dieser "Übergang" von Arduinoisch zur C++-Welt so schwer fällt? Wie manifestiert sich dieser Weg bei Euch und was habt Ihr diesbezüglich so für Erfahrungen gemacht?

Gruß Chris

Also das C/C++ des Arduino ist ein "ganz normales" C/C++. Im Prinzip funktionieren hier die gleichen Dinge wie auf einem "großen Computer". C/C++ ist im Grunde erstmal nur eine Sprache. Mit Leben füllt sich sowas erst, wenn in dieser Sprache Bibliotheken und Programme geschrieben werden. Das hat dann aber nix mehr mit der Sprache selbst zu tun.

Das Problem das Du hast ist, das es für den Arduino eine sehr spezielles Ökosystem an Bibliotheken und Erweiterungen gibt, die der speziellen Hardware des Arduino im speziellen und dem ATMEL µController geschuldet sind.

Eine weitere Einschränkung ist der geringe Speicherplatz des Arduino und die Trennung aus Programmspeicher (progmem) und Datenspeicher (SRAM). Das Ganze nennt sich Harvard Architektur und unterscheided sich von der Architektur "normaler Computer".

Umdenken bezüglich eines "normalen" Programms muss man beim Arduino insofern auch, als das es ein einziges Programm gibt, das immer wieder durchlaufen wird (loop()).

Ich bin vor vielen Jahren als Entwickler zu C/C++, Java und diversen anderen Sprachen gekommen und erst vor einiger Zeit zum Arduino. Ich komme also aus Deiner Sicht "von der anderen Seite".

Mario.

Die Sprache, mit der Arduino arbeitet ist keinesfalls vereinfacht. Es handelt sich hierbei auch um das normale C/C++, welches auf anderen µC läuft. Die Entwickler haben dir lediglich einen großteil der Arbeit abgenommen, in dem bereits im Standardpaket ein ganz großer Haufen an fertigen Libarys hinterlegt ist. Mit der Arduino IDE nicht direkt ersichtlich.

Für das "Plain C" gibt es ebenfalls eine vielzahl an Bibiotheken, die in anderen IDEs genutzt werden könnten, ohne das Arduino auf dem Rechner installiert werden muss.

Meine Projekte wurden jedenfalls immer umfangreicher und ich stieß in letzter Zeit immer öfter an die Grenzen der arduinoischen Befehlsmöglichkeiten.

Die Aussage ist übrigends mM nach total falsch.