Welche Literatur (Papierform) würdet ihr mir für Arduino-C empfehlen?Das zieht sich durch diesen ganzen Thread. C ist C. Und das unabhängig vom Prozessor, auf dem es läuft: AVR oder Mainframe. Die Sprache hat sich von der ursprünglichen Form (C ohne Zahl oder auch K&R genannt) über C99 usw weiterentwickelt. Die Syntax hat sich eigentlich nicht verändert. Es gibt Dokumente, die den Standard beschreiben. Eine Sprache, die sich nicht an den C99 Standard hält, darf sich nicht so nennen.Bücher über C habe ich genug - Arduino sieht hier etwas anders (einfacher/schlanker) aus - vermutlich Bibliotheken im Hintergrund.
Arduino ist eine C++ Umgebung. C++ ist mitnichten einfacher oder schlanker als C. Auch dazu gibt es einen Standard.
Hardware kommt im C-Standard ncht vor, auch Interrupte nicht. Also: Display-Ansteuerung, analoge/binäre IO, Tastenentprellung via Interrupt, Timer, Zähler, Eingangs- und Timer-Interrupts, PWM haben mit C primär nichts zu tun. C kennt nichts, außer einigen reservierten Worten wie if, else, while, for ... , Variable verschiedener Typen und Funktionen.
Wenn man die Hardware seines Systems kennt, von Neuman/Harvard, Memory mapped I/O oder verschiedene Busse oder Adressräume, Interruptvektoren etc, kann man in C und/oder Assembler von C aufrufbare Funktionen schreiben, die sich um die Hardware kümmern. Manches muß auch der Linker erledigen, wie SFRs auf feste Adressen mappen. Wie die Hardware selbst funktioniert, steht in ihrer Doku, dem Datenblatt oder Users Manual. Das gilt natürlich auch für C++. Man kann auch Methoden schreiben und sie von C++ benutzen. Wenn man Glück hat, hat schon einer das Passende geschrieben. Im Arduino Bereich ist das oft der Fall, wobei man immer berücksichtigen muß, daß nicht jeder Code wirklich gut und brauchbar ist.
MfG Klebwax
P.S. avr-GCC oder GCC-arm-none-eabi ist der gleiche Compiler, der gcc. Er erzeugt nur Code für verschiedene Hardware. Unter dem Namen GCC erzeugt er auf einem Linux-PC auch Code für diesen. Der Langname ist nur nötig, wenn Crosscopiliert werden muß.
Lesezeichen