Soweit ich weiß kann man AVR auch mit C programmieren. geht es auch mit c++ builder oder mit visualC++ und mit welchem Compiler muß ich dann arbeiten?? C bzw. C++ soll ja doch einfacher sein als Assembler und umfangreicher als Basic, oder?
Du kannst Keinen VC oder borland compiler nehmen, da die nur für den X86 Befehlssatz code erzeugen können. such mal nach WINAVR
Auf einem µC ist C genau das, wofür es entwickelt wurde... Ein komfortabler Makro-Assembler. Die Programmierung eines µC läßt sich überhaupt nicht mit der Programmierung eines PC vergleichen. Man muß äußerst Hardwarenah programmieren (können).
Wenn du Assembler richtig kannst ,brauchst du kein C/C++ mehr. MfG HG
also ich progge AVRs ziemlich cool mit C++, sogar mit nem Klassendiagramm... ist echt ne ganz andere qualität an Software... stimmt zwar das der eigentliche hex dann größer wird aber die produktivität und übersichtlichkeit beim Entwurf und der Realisierung sind ein Unterschied wie Dreirad fahren und Jet fliegen und ich denke die Reise geht eh da hin, denn die Controller werden immer schneller und haben immer mehr Speicher... gruß Jahn
>ist echt ne ganz andere qualität an Software...
Aber wenn es auf ein Takt ankommt musst du sowieso mit einzelnen
maschinen Befehlen hantieren.
Also zuerst Assembler lernen.
ja klar muss man zu assembler greifen wenn es auf jeden takt ankommt... ;-) kommt halt auf die aufgabe an... ich keene noch nen kollegem der ist pc-programmierer und war vor 15 jahren noch der meinung nicht C lernen zu müssen weil er in assembler alles viel besser lösen könne und das ganze viel performanter ist ... na ratet mal wie viel assembler der heute noch programmiert schmunzel
Ein AVR ist aber kein PC. Beim PC programmiert man unter einem Betriebssystem, welches sich um die Hardware kümmert. Beim AVR programmiert man direkt an der Hardware, da sollte man die Hardware schon kennen und das geht mit ASM am einfachsten. Sicher erspart einem eine Hochsprache eine Menge Arbeit, aber ganz ohne ASM-Kenntnisse erreicht man damit (beim MC) nicht allzuviel. ...
na da muss ich dir natürlich recht geben... also erst assember und dann zu c++ ;-)
Ich würde das nicht so unterschreiben, das man erst Assembler und dann erst C programmieren können muß. Ich khabe schon verschiedene Micros in Assembler programmiert, aber den AVR Befehlssatz kann ich maximal LESEN. Das ändert aber nichts daran, daß ich fast nur noch AVR's benutze, in Verbindung mit avr-gcc auf FreeBSD. Ich komme damit eigentlich sehr gut klar, hätte aber auch keine Probleme mal Inlines zu schreiben, oder eben wirklich den Assembler zu nehmen. Dann muß ich halt erst einmal ein Bisschen lesen.. Gruß, Holm
Hallo Leute, erst mal vielen dank für die vielen zuschriften. ich muß wohl mal dazu schreiben das ich mit µC bis jetzt noch gar nix gemacht habe, programiere SPS und will mal was anderes machen. µC sind ja z.t. noch flexibler und schneller als SPS. Programmiersprache kenne ich nur Basic aus der schule ist aber viele jahre her. uberall wo ich lese kommt C++ zum einsatz und wollte es deshalb mal lernen und damit auch in die welt der µC einsteigen vorzugsweise Atmel. ML
Hi Wichtiger als die Programmiersprache ist es ,sich erst mal mit dem Controller und dessen interner Hardware auseinander zu setzen. Ansonsten ist es nämlich egal ob du in Assembler,C oder C++ nicht weisst was du machst. MfG HG
>ist echt ne ganz andere qualität an Software...
die unterschiede zeig mir mal! (Jet und dreirad)
wenn man c richtig programmiert wirds genau so übersichtlich,
portierbar, wiederverwendbar! Man darf halt nich alles in eine datei
stecken
stell doch mal ein proj vor wo du denn hauptvorteil von c++ vererbung
und polymorphie so richtig schön verwendet hast.
gruß
Dreiradfahrer
Meiner Meinung nach eignen sich insbesondere OO-Sprachen sehr gut fuer hardware-nahe Programmierung (wie bei controllern). Alle hardware Komponenten sind sozuagen Parade-Beispiele fuer Objekte. Was allerdings dagegen spricht, ist der ueblicherweise groessere code. Wenn man genuegend Flash/RAM + MHz hat, sollte man sich diesen Luxus aber durchaus leisten.
@dreiradfahrer: Hat zwar nichts mit uCs zu tun, aber ich fand es schon ganz angenehm, libbasicard, meine Implementation der BasicCard API (das ist eine Smart Card aka Chipkarte) in C++ zu schreiben. Nicht, dass es nicht in reinem C gegangen wäre, aber so war's bequemer. Inklusive Vererbung und Polymorphismus. Ich hatte vorher bereits angefangen, libbasiccard "nur" in C zu programmieren, habe es dann aber verworfen, weil mir eine Realisierung in C++ übersichtlicher erschien. Objektorientierte Programmierung kann schon übersichtlicher sein. Ob man das auf einem uC machen muss, weiß ich allerdings auch nicht. Da bin ich mit Standard-C bisher genauso gut gefahren.
>Ob man das auf einem uC machen muss
Wenn der µC "gross" genug ist und die Software dafür entsprechend
umfangreich dann ist OOP sicher sinnvoll.
Aber bei bei 16KB Speicher macht man sich damit nur mehr Arbeit.
Es sei noch angemerkt, daß OOP nicht der einzige Vorteil von C++ ist.
Der gcc (GNU-Compiler) unterstützt C++ und ist obendrein kostenlos. Funktioniert prima, braucht aber ein wenig mehr Speicher als reines C. Die Übersichtlichkeit und Fehlerfreiheit (im Vergleich zu C, aber vor allem im Vergleich zu Assembler!) machts aber dreimal wieder wett. C++ ist und bleibt m.E. die Sprache der Wahl: denn: Alles ist übersichtlich möglich, beliebige Abstraktionslevel lassen sich angebracht darstellen (von Bitmanipulationen bis hin zu komplexen Klassenhierarchien. Versuch letzteres mal in Assembler!)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.