Forum

Einloggen | Registrieren | RSS  

@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code (Elektronik)

verfasst von hws(R) E-Mail, 59425 Unna, 15.11.2011, 19:58 Uhr

» Warum heißt es dann im Volksmund, dass C oder C++ eine sogenannte
» "Hochsprache" ist??

Sind es für mich auch. Die Behauptung "C ist keine höhere Programmiersprache" stammt nicht von mir.

» Dazu folgendes Bild aus dem AVR Mega 16 ....

Doch, und das passt für fast alle ATMEgaxxx

Man kann natürlich in C exakt so programmieren, wie in Assembler - Bit für Bit setzen und schieben. Aber man hat noch mehr Möglichkeiten.

Nimm eine (möglicherweise noch verschachtelte) CASE Anweisung oder For-Schleife oder einen bedingten Sprung. Dort ist der erzeugte Assemblercode nicht mehr so einfach 1:1 mit den C Befehlen vergleichbar. (Kann man sich ansehen, wenn man die Option im C-Compiler einschaltet.)

» In solchen PDF´s sind "immer nur" Beispiele im Assembler- oder C-Code,
» aber ich habe bisher noch keines mit einem C++ - Code gefunden.

Es ist auch nicht sinnvoll, ein C++ Programm auf einen Assemblercode zurückzuführen. (und ob es sinnvoll ist, bei einem KLEINEN µC in C++ programmieren bezweifle ich ebenfalls mal)

Was ich für Einsteiger als sinnvoll ansehe: Bei einem bestimmten µC Grundlagen mit Assembler zu üben. Dabei lernt man die grundlegende Arbeitsweise, wie der µC intern arbeitet. Dann in C einsteigen und das Assemblerprogramm in C umsetzen (mehr oder minder 1:1, gleicher µC)
Danach in C weitermachen, auch die Befehle, die man nicht mehr 1:1 aus Assembler übernehmen kann. (Felder, Pointer, FOR und IF Konstrukte usw)
Hilfreich für das C-Verständnis wäre auch, wenn man auf dem PC mal mit Quick-C oder ähnlichem programmiert hat, ohne sich um die interne Umsetzung jemals gekümmert zu haben - muss aber nicht.

Und wenn man einen bestimmten µC in C programmieren kann, kann man auch einen andren µC in C programmieren.
Der einzige Unterschied ist die unterschiedliche Hardware. Der AD Wandler eines PIC's wird anders ausgelesen als der eines AVR's.
Und genau diese Codeschnipsel sind die Beispiele in den entsprechenden Datenblättern. (Aus der Register- und Bitzuordnung des AD-Wandlers könnte man sich das auch selbst ableiten - aber die Beispiele sind halt hifreich)

» Und da ich grad nebenher nicht nur bisschen - mindestens an 3 Tagen in der
» Woche - in C++ programmiere, wollte ich einfach fragen, ob jemand von euch
» erfahrenes von "Handbüchern/Datenblättern" mit Beispielen in C++ - Codes
» wüsste...

Beispiele weiss ich nicht. Aber wenn du C++ beherrscht, solltest du auch C kennen?
Also ist die Frage, gibt es für den gewünschten µC einen C++ Compiler?

Assembler und einfache Brenner, Entwicklungssysteme gibt es für fast jeden µC. Neben Atmel und Pic gibt es auch noch Texas, Renesas, Holtec und nen Haufen andere.
C und/oder C++ ist dann mehr ne Frage, was man für dieses System zahlen will. Und wenn man komfortable Debugger in Hardware und Software haben will, ist das ebenfalls ne Preisfrage.

In kommerziellen Firmen weniger, da dort die Arbeitszeit bewertet wird - im Gegensatz zu "Bastlern".

» Weil ich inzwischen der Meinung bin, dass ich mich lieber auf eine
» "Sprache" konzentriere als mehrere Sprachen gleichzeitig zu lernen...


Korrekt. Lerne C, das können die meisten (alle?) µC's. Vielleicht willst du dich ja auch nur (vorerst?) auf einen µC fokussieren.
Neben C musst du für jeden µC auch noch die spezifische Peripherie lernen (Timer, PWM, AD-Wandler, Interrupts usw) Und genau das sind die Beispiele in dem Datenblatt (in C und Assembler)
Eine "Schlaraffenland-Programmierung" gibt es nicht. C++ für einen Prozessor schreiben ohne Ahnung, welche Peripherie drin ist, geht nicht.

hws



Gesamter Thread:

@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - silent_max(R), 14.11.2011, 21:30 (Elektronik)
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - hws(R), 15.11.2011, 09:58
Wann gilt der Begriff Übersetzen? - schaerer(R), 15.11.2011, 12:05
Wann gilt der Begriff Übersetzen? - hws(R), 15.11.2011, 14:56
Wann gilt der Begriff Übersetzen? - schaerer(R), 15.11.2011, 19:11
Wann gilt der Begriff Übersetzen? - Mnemonik - geralds(R), 15.11.2011, 17:11
Wann gilt der Begriff Übersetzen? - Mnemonik - schaerer(R), 15.11.2011, 19:33
Assembler - Mnemonik - geralds(R), 15.11.2011, 21:24
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - silent_max(R), 15.11.2011, 18:19
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - hws(R), 15.11.2011, 19:58
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - geralds(R), 16.11.2011, 05:02
Entschuldigung - silent_max(R), 16.11.2011, 22:08
Tips - geralds(R), 16.11.2011, 23:02
Tips - hws(R), 17.11.2011, 11:19
Tips - geralds(R), 17.11.2011, 16:58
Tips 2 - geralds(R), 19.11.2011, 13:35