Arduino mit AVR Programmieren und C++

Hallo liebe Leute,

Ich würde gerne Arduino nicht mit der Arduino "Sprache" Programmieren. Meine Bevorzugung wäre entweder die Register Programmierung per AVR(eher C ähnlich), oder C++ direkt. Für die Register Programmierung habe ich bereits ein Buch gefunden( Atmel AVR Microcontroller Primer von Steven Barrett bei Google Books) was dieses gut beschreibt, des weiteren verwende ich dazu die Atmel Studio IDE und lade darüber die "Sketches" auf meinen Arduino. Dieses verwende ich da die Handhabung des Programms und das Visuelle mich mehr Anspricht als die Arduino IDE.
Nun ist meine Frage was ihr für "reine" C++ Programmierung empfehlen könnt, falls es sowas überhaupt gibt. Und dazu vllt ein Buch/Internetseite falls jemand eines wüsste, um darin etwas fitter zu werden.

Ich weiß das es reines C oder C++ nciht dirket gibt, aber ich bin für alles dankbar

LG Silotas

Arduino ist reines C++
Und dein Atmel Studio kann auch reines C++

Register Programmierung per AVR(eher C ähnlich),

Was das sein soll, verstehe ich nicht.

Das mit den Registern ist eher wenn man es braucht. Das hängt rein von der Anwendung ab:
1.) Wenn eine Arduino Funktion zu langsam ist (z.B. digitalWrite() oder der ADC)
2.) Wenn die Arduino Software eine gewünschte Funktion nicht unterstützt. z.B. bestimmte Betriebsarten von Timern oder dem ADC. Oder der Analog-Komparator.

In vielen Fällen braucht man es aber nicht und die Arduino Abstraktion ist ok

C Grundlagen:

C++:

Ein C Tutorial reicht für die Grundlegende Programmlogik teilweise aus. Bei C++ geht es dann eher um Klassen (aber nicht nur. Referenzen z.B. gibt es in C++, aber nicht in C).

Der Nachteil von C++ Tutorials/Büchern in Bezug auf den Arduino ist aber dass es keine Standard Template Library gibt. Die Bücher verwenden dann schnell mal Container wie Vektoren. Darüber muss man sich im Klaren sein wenn man das übertragen möchte.

Die Arduino-Sprache wie Du es nennst ist reines C/C++ mit Hardwarespezifischen Funktionen.

Du kannst auch keine von den Arduino-Funktionen verwenden und auf die Register des Kontrollers direkt zugreifen. Auch kannst Du Assemblerteile hinzufügen. Wirklich notwendig ist es in den seltesten Fällen.

Grüße Uwe

Der Arduino wird in C/C++ programmiert. Zumindest ist das die Sprache, in der er üblicherweise programmiert wird.

Silotas:
Ich weiß das es reines C oder C++ nciht dirket gibt, aber ich bin für alles dankbar

Doch, gibt es. Besorge Dir einen „K+R“ („The C Programming Language“ von Kernighan und Ritchie). Dort ist C von den Machern beschrieben (ANSI C). Ich habe C++ mit dem hier gelernt. Da geht es zwar nicht um Arduino, sondern um Linux, aber das ist im Grunde nebensächlich. Wenn Du ein anderes Betriebssystem benutzt, gibt es bestimmt auch besseres als dieses Buch. Für Linux kann ich es aber uneingeschränkt empfehlen.

Gruß

Gregor