Forum: Mikrocontroller und Digitale Elektronik Wahl der Programmiersprache


von Marcelo F. (klaps)


Lesenswert?

Hallo Leute,
ich fange momentan mit Mikrocontrollern an, ich wähle gerade die 
Sprache. Da gibt es Bascom , Assembler oder C oder? C++ wird nicht 
verwendet?
Assembler mag ich garnicht, bleibt Bascom oder C.
In der Schule programieren wir mit Delphi (objekt Pascal). Nächstes Jahr 
fange ich mit dem Studieren an, wahrscheinlich Elektrotechnik. Welche 
Sprache wird dafür empfolen? Wollte mit etwas anfangen, was mir dann im 
Studium auch etwas bringt.
Welche Sprache ist also eurer Meinung nach am geeignetsten?

Danke für eure Antworten
Marcelo Farinha

von A. B. (funky)


Lesenswert?

Ich würde C nehmen.
Zumindest haben wir im Studium damit unsere Mikrocontroller programmiert 
und es ist ne Ecke unkomplizierter als Assembler.
Mit Basic würde ich nicht anfangen(aber das ist nur meine persönliche 
Meinung)

Heutzutage wird aber auch viel Java verwendet im Studium(natürlich nicht 
zur Mikrocontrollerprogrammierung) Aber mit C machts du definitiv nix 
falsch

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Frei nach Henry Ford:

Es kann jede Programmiersprache gewählt werden, solange sie C heißt.

von Plan (Gast)


Lesenswert?

Ich programmiere PC Programme mit Lazarus,
Mikrokontroller mit C. C hat auch den Vorteil, dass man notfalls 
Assembler Befehle einbinden kann.
Und den Vorteil, dass sehr viele Beispiele in C existieren. Das Internet 
ist quasi voll davon, für alle Prozessoren. Alle Hersteller von µC 
liefern ausschließlich Demos in C.
µC in andere Sprachen zu programmieren, das würde bedeuten dass man erst 
mal viel Zeit investieren muss um die "Grundfunktionen" hin zu bekommen, 
die bereits bei vielen Herstellern als FW-LIB gratis vorhanden sind. 
Beispiel FW-Lib von STM32.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Rufus t. Firefly schrieb:
> Es kann jede Programmiersprache gewählt werden, solange sie C heißt.

Cssembler ;-)

von Werner (Gast)


Lesenswert?

MikroPascal !!

Eine saubere Sprache !!

von Karl H. (kbuchegg)


Lesenswert?

C++ bringt auf den µC um die es hier hauptsächlich geht, nicht so viel, 
dass es sich lohnen würde, wobei die interessanteren Sachen von C++ den 
Rahmen eines AVR sprengen würden.

Assembler ist eigentlich nicht so schlimm.
Es hat den einen Vorteil, dass du direkt an der Hardware bist. Viele 
AVR-Projekte haben im eigentlichen Sinn keine komplizierte Logik. Es 
reicht die richtigen Steuerregister einzustellen und die Hardware machen 
zu lassen. Die verbindende Logik ist auch mit Assembler oftmals gut und 
einfach umsetzbar.

C ist sicherlich das Hauptarbeitspferd. Kompexere Logiken, die in 
Assembler schnell unübersichtlich werden, kann man in C immer noch 
einfach ausdrücken. Alleine die Befreiung sich nicht um 
Registerallokierung bzw. Stackmanagement kümmern zu müssen, wiegt schon 
vieles auf. C ist noch nahe genug an der Hardware, so dass man sich auf 
den Kompromiss einlassen kann, dass man ein paar Prozentpunkte 
Performance für den Komfort einer 'Hochsprache' erkauft.

Bascom hat einen ganz anderen Ansatz. Bascom versucht die Hardware 
weitestgehend wegzublenden. An ihre Stelle treten vorgefertigte Module, 
die ein Programmierer einsetzen kann und die aufgabenspezifisch sind. 
Das funktioniert prinzipiell gut, solange der Funktionsumfang dieser 
Module die Aufgabenstellung umfasst. Muss man diese verlassen, dann kann 
man zwar auch in Bascom auf Registerebene im µC runter. Aber gerade 
Bascom-Anfänger haben mit dieser Denkweise oftmals so ihre 
Schwierigkeiten und versuchen den abgesteckten Rahmen der vorgefertigten 
Module möglichst nicht zu verlassen.

von Marcelo F. (klaps)


Lesenswert?

ok danke für eure schnellen Antworten
denke ich werde mir mal C etwas genauer durchschauen und ein Tutorial 
durcharbeiten

von Rolf E. (rolf)


Lesenswert?

Nachdem ich gerade die neue Version von AVR-Ada freigegeben habe, wollte 
ich Dich wenigstens darauf hinweisen:

   avr-ada.sf.net

Adas Syntax ist sehr nah an Pascal. Insofern ist die Einarbeitung 
vermutlich einfacher als in C.

Aber um C kommst Du nicht herum.  Der weit überwiegende Teil neuer 
embedded SW wird in C programmiert, nach meinem Eindruck.

   Rolf

von Peter B. (pebez)


Lesenswert?

Hallo Marcelo,

ich selber bin blutiger Anfänger.

Ich hatte mit Bascom angefangen, da ich Basic in früherer Zeit gelernt
habe und auch heute noch als VB in den Office Programmen sehr oft
verwende. Habe mir dann ein Experimentier Board von Franzis zugelegt
und war sofort vom µC begeistert.

Dann hatte ich mit dem STK500 Probleme und fand dieses Forum.
Hier hatte man mir empfohlen Assembler zu lernen. Heute, nach 2 Wochen
muss ich sagen, dass dies ein sehr sehr guter Rat war.

Mit Assembler ist man direkt in der Hardware und lernt auf diese Weise
den µC ausgiebig kennen. Darum ging es mir in erster Linie um den µC.

Das erlernen einer Programmiersprache ist sekundär, aber mit Assembler
ist man mitten drin im µC und das hat bei mir oberste Priorität.

Säter, wenn man den µC kennt und die Anwendungen professionell werden
kann man immer noch auf C umsteigen.

Will man den µC kennenlernen = Assembler
Will man prof. Anwendungen zu Hauf = C
Zwischending zwischen Assembler und C = Basic

Das ist meine persönliche Meinung und ich möchte keine Diskussionen vom
Zaun brechen.

Gruß  Pebez

von Klaus W. (mfgkw)


Lesenswert?

Hast du jetzt aber.

Asm ist ok, ich würde aber nicht unbedingt dazu raten.
Grund: eher unübersichtlich und noch mehr Fehlermöglichkeiten
als in C.
Den Vorteil, sehr effektiven Code schreiben zu können, hat
und braucht man nicht als Anfänger.
Ein anderer Vorteil wäre wie gesagt, näher am Prozessor zu sein
und ihn besser kennen zu lernen. So groß ist der Unterschied zu
C da aber auch nicht. Denn Register etc. muß man so oder so
kennen und sich aus dem Datenblatt und holen, und ob man
Schleifen und Fallunterscheidungen auch noch in ASM macht,
hilft einem auch nicht viel weiter.
Assembler kann man zur persönlichen Weiterbildung mal
irgendwann in Ruhe aus Spaß anschauen; wirklich brauchen
wird man es lange nicht.

Der Rat zu C ist sicher nicht schlecht. Man hat wenig
Einschränkungen, hat eine brauchbare Sprache, die man auch
anderweitig nutzen kann und viele Beispiele und leichte
Hilfe.

BASIC kannst du komplett in die Tonne treten.
Erstens ist die Sprache von sich aus schon sinnvoll wie
ein Kropf, und zweitens kann dir kaum jemand bei Problemen
helfen, weil alle mit Ahnung nicht BASIC nehmen.
Die paar Fragen hier im Forum zu BASIC enden regelmäßig
als Trauerfall.

Also eigentlich nix neues, außer daß ich mich gegen:
> Zwischending zwischen Assembler und C = Basic
vehement verwahre.
C und Assembler sind noch halbwegs benachbart, BASIC
ist eine andere Welt und hier kaum sinnvoll.

von Peter B. (pebez)


Lesenswert?

Hallo Klaus,

ich wollte doch niemandem zu Nahe treten :-)

Für mich ist Basic weder LOW noch HIGH.
Den µC richtig kennen lernen, dass ist es.

Wenn ich an das bisher gelernte in Anlehnung gehe, ist Asm keineswegs
kompliziert, WENN man sich an die Grundregeln hält.
Dann bekommt man auch einen sehr gut Strukturierten Code hin :-)

Guts Nächtle........

Gruß  Pebez

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
Noch kein Account? Hier anmelden.