Forum: Mikrocontroller und Digitale Elektronik Lieber doch C lernen für Roboter


von Spyro07 (Gast)


Lesenswert?

Hallo,
bisher habe ich immer in Assembler programmiert. Da ich aber für eine 
Arbeit einen Roboter bauen will, wollte ich mal fragen ob es bei so 
einer Thmeatik sinnvoll ist, zumindest teilweise auf C umzusteigen.

Bisher finde ich aber Assembler eben sehr gut, vorvorallem weil man auch 
sehr viel dabei über die Funktion eines µc´s lernt.

Lohnt es sich, über die Thmeatik Roboter ein Buch zu kaufen, oder ist es 
besser wenn man sich alles aus dem Internet holt. Und gibt es überhaupt 
gute Bücher, über Roboterprogrammierung?

mfg

von Gast (Gast)


Lesenswert?

Robotersteuerungen kann man nur in c schreiben.
Assembler verstehen die gar nicht.

Viel Spaß beim Lernen.

von Spyro07 (Gast)


Lesenswert?

Wie meinst du das mit Robotersteuerungen. Ich hatte eigentlich nicht vor 
so einen fertigen Bausatz zu nehmen, sondern mit einem Mega8 oder so mir 
den Roboter selber auzubauen, mit den Motoren und ähnlichen dann.
Ist das ungünstig für den Anfang?

Ich habe das halt so gemeint, ob zum Beispiel die Ansteuerungen von 
Schrittmotoren und ähnlichem besser sich in C schreiben lassen.

von Der M. (steinadler)


Lesenswert?

Gast wrote:
> Robotersteuerungen kann man nur in c schreiben.
> Assembler verstehen die gar nicht.

Das ist totaler Käse.
Ich persönlich würde für große Projekte C einsetzen. Ich finde das 
übersichtlicher. Assembler kannst du ja trotzdem einbinden.
Es steht dir aber auch nichts im Wege, durchweg in Assembler zu 
programmieren.

Bzgl. Informationen ist im Netz eigentlich viel zu finden.

von Kachel-Heinz (Gast)


Lesenswert?

Die Programmiersprache ist sekundär, denn es kommt erstmal auf die 
richtigen Algorithmen an. Wenn Du nicht weißt, mit welchen Algorithmen 
Du ein Problem lösen kannst, dann nützt es Dir nicht allzuviel, die 
Vokabeln einer Hochsprache wie C zu kennen.

KH

von Klaus (Gast)


Lesenswert?

Andersum genauso: Wenn du Ahnung von den benötigten Algorithmen hast und 
die Hardware gut kennst, weil du schon viel mit Assembler gearbeitet 
hast, ist es gar nicht so schwer die C-Vokabeln zu lernen. Ich behaupte 
sogar, wenn du Hintergrundwissen mit Assembler hast, kannst du sogar 
effektiver C schreiben, als Leute, die nur C gelernt haben.

von Martin (Gast)


Lesenswert?

Ich würde sagen lerne C, programmiere in C und wenn es irgendwo sehr 
zeitkritisch wird schreibe nur diesen Teil in Asm.

> Robotersteuerungen kann man nur in c schreiben. Assembler verstehen die
> gar nicht.

Eine CPU bzw. MC versteht weder C noch Asm. Asm ist auch Text.

von Spyro07 (Gast)


Lesenswert?

Ja, vielen Dank für die Antworten.

Ist es denn überhaupt sinnvoll, ein Buch zu kaufen, über µc?
Weil ein totales Anfängerbuch bräuchte ich ja soweiso nicht.
Ich bevorzuge ja eigentlich ASM, aber mal sehen ob ich dann am Ende doch 
um C nicht herumkomme.
Aber grundsätzlich sind also beide Sprachen möglich, es ist also nicht 
so das ich bei ASM zum Beispiel das Dopllete an Arbeit habe, wenn ich 
einmal in der ASM-Denkweise drin bin?

mfg

von Spyro07 (Gast)


Lesenswert?

Achso, habe noch vergessen, ist es von fertigen Programmen her die man 
im Netz findet, welche man als Vorlage nutzen kann, eher günstiger in 
ASM oder C?

von ASM (Gast)


Lesenswert?

Wenn es die Zeit zulaesst, wuerde ich auch auf C umsteigen. Ich habe 
auch immer in ASM programmiert und bei einem umfangreichen Projekt habe 
ich die Gelegenheit beim Schopf gefasst und mit C begonnen. Das ging 
eigentlich ganz gut. Insbesondere wenn man die HW schon gut kennt, ist 
es kein grosses Ding eine Programmiersprache wie C zu verwenden, weil 
sie ja recht intuitiv ist.
OK, am Anfang muss man (wie bei ASM auch) oft nachschauen wie das mit 
der Syntax, den Befehlen etc. ist. Aber man kommt doch sehr viel 
schneller ans Ziel bei umfangreichen Projekten.
Der Compiler ist dabei auch so gut, dass man ohne sehr viel 
ASM-Erfahrung kaum ein effizienteres (Codegroesse und Geschwindigkeit) 
Programm in ASM schreiben kann. Bei genauen Timing-Anforderungen kannst 
du immer noch ASM einbinden.
Wenn du ASM bereits kannst, dann sind die Compilerlistings auch sehr gut 
zu verstehen und man kann manuell nachhelfen wenn er etwas unguenstig 
uebersetzt.
Ich wuerde wie gesagt C lernen, das kannst du ueberall gebrauchen. Dabei 
aber ASM nicht vergessen. Beides zusammen ergaenzt sich sehr gut...

von ASM (Gast)


Lesenswert?

Noch zu deiner letzten Frage: eindeutig C. Denn der ASM Befehlssatz ist 
sehr vom verwendeten Controller abhaengig. Ein C-Programm sieht auf 
allen Architekturen aehnlich aus. Eine ASM-Portierung von PIC zu AVR 
z.B. ist mit sehr viel Aufwand (praktisch muss das Ding neu geschrieben 
werden) verbunden. In C hast du da schon eher Erfolgschancen.

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.