mikrocontroller.net

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


Autor: Spyro07 (Gast)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Viel Spaß beim Lernen.

Autor: Spyro07 (Gast)
Datum:

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

Autor: Der Micha (steinadler)
Datum:

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

Autor: Kachel-Heinz (Gast)
Datum:

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

Autor: Klaus (Gast)
Datum:

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

Autor: Martin (Gast)
Datum:

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

Autor: Spyro07 (Gast)
Datum:

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

Autor: Spyro07 (Gast)
Datum:

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

Autor: ASM (Gast)
Datum:

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

Autor: ASM (Gast)
Datum:

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

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.