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
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.
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.
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
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.
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.
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
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?
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...
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.