mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik avr mit c++ programmieren?


Autor: avreinsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Johan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst Keinen VC oder borland compiler nehmen, da die nur für den X86
Befehlssatz code erzeugen können. such mal nach WINAVR

Autor: Thomas K. (thkais)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lerne erst Assembler. Ohne den µC zu kennen nutzt dir C auch nichts.

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du Assembler richtig kannst ,brauchst du kein C/C++ mehr.

MfG HG

Autor: Jahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Jahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Autor: Jahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na da muss ich dir natürlich recht geben... also erst assember und dann
zu c++ ;-)

Autor: holm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: avreinsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wohl wahr...

Autor: Dreiradfahrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian Zietz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sei noch angemerkt, daß OOP nicht der einzige Vorteil von C++ ist.

Autor: Rolf Eichenseher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.