Mark schrieb:
> womit erstellt ihr euren Code für den Mikrocontroller (ausser
> Assembler)? In C oder C++?
> Ich denke, C würde eigentlich reichen, wenn man jedoch externe Module
> anhängt (RFID, Funk, Bluetooth usw.) würde sich ja auch eigentlich C++
> anbieten.
> Würde gerne mal so ein paar vor-/Nachteile rausfinden. Habe selbst
> bisher nur in C programmiert, würde aber evtl. gerne zu C++ übergehen.
"C oder C++" ist eine Frage, die hier im Forum immer wieder heiß 
diskutiert wird -- und ich bekenne, daß ich dabei der C++-Fraktion 
angehöre.
Die Kurzfassung ist: viele C++-Features kann man auch auf 
Mikrocontrollern sinnvoll nutzen. Sie machen den am Enge erzeugten Code 
nicht oder höchstens unwesentlich größer, erlauben aber oft eine 
wesentlich bessere Organisation des Code, verbessern dadurch die Les- 
und Wartbarkeit und vermindern so die Entwicklungszeit. Diese Features 
sind vor allem Datenkapselung, Vererbung, und Polymorphie. C++-Templates 
lassen sich gewinnbringend nutzen, werden jedoch oft als alternativer 
Mechanismus zur Parameterübergabe mißbraucht.
Andere C++-Features sind mit Vorsicht zu genießen, wieder andere machen 
wenig bis keinen Sinn. Dazu gehören Exceptions, dynamisches Binden und 
dynamische Speicherverwaltung, sowie der größte Teil der STL.
Drei wesentliche Punkte der Diskussionen sind erstens: ein C++-Programm 
ist auch dann ein C++-Programm, wenn es nicht jedes einzelne Feature von 
C++ ausnutzt. Und zweitens: wer C++ in limitierten Umgebungen benutzen 
will, der sollte wissen, was der Compiler aus welchem Konstrukt macht, 
und im Zweifelsfalle regelmäßig das Assemblerlisting überprüfen. 
Drittens: es gibt leider bisher keine C++-Library für Mikrocontroller, 
auf die sich die Commnuity einigen konnte; es gibt ein paar 
vielversprechende Ansätze, aber noch keinen Konsens ob einer oder gar 
welcher sich durchsetzen wird.
Wenn man diese Punkte beachtet und bereit ist, ein wenig Zeit ins Lernen 
dieser Dinge zu investieren, dann kann man mit C++ auf Mikrocontrollern 
viel Spaß haben und sauberen, wart- und erweiterbaren Code schreiben, 
der nicht mehr Ressourcen als ein äquivalenter C-Code benötigt.
HTH, YMMV.