- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: Roboter-Bausatz und deren Programmierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von Karl1000 Beitrag anzeigen
    Ich programmiere seit Jahren ASM auf dem PC. C/C++ natürlich auch. Ich kann sagen dass ASM (wenn man mit allen Wassern gewaschen ist) C/C++ deutlich überlegen ist. Und ich finde den Programmieraufwand kaum höher.
    Bei extrem anspruchsvollen Applikationen ist ASM die erste Wahl.
    Und die, die sagen dass es nicht so ist, können selten ASM.
    So als Faustformel gilt, dass 1 Zeile in einer Hochsprache etwa 10 Zeilen Assembler entspricht.
    Die Leistung eines Programmierers in Zeilen Code/Tag ist in etwa konstant, beim Assembler braucht man etwas mehr Zeit fürs Debuggen.
    Mit einer Hochsprache ist man also in etwa 10x schneller mit einem Projekt fertig.

    Was die Effizienz von C anbelangt ist der Unterschied bei heutigen Compilern mit Optimierung nicht mehr sehr gross.
    Assembler ist im Durchschnitt nur 10-20% schneller/kompakter.

    Für einzelne zeitkritische Funktionen macht Assembler einen Sinn. Auch für den Taskwechsel in einem Multitask-System (Alle Register retten und alle wieder restoren) kommt man um Assembler nicht herum.
    Ausser für die genannten Ausnahmen, habe ich in den letzten 20 Jahren nichts mehr in Assembler geschrieben, sondern alles in C!

    Allerdings sind Assembler-Kenntnisse sehr von Vorteil, wenn man den Linker verstehen und ausnutzen will. Dann bekommt man es auch hin, dass Konfigurations-Einstellungen auch nach einem Firmware-Update erhalten bleiben.

    MfG Peter(TOO)
    P.S. Angefangen mit Assembler habe ich 1976 mit einem KIM-1 (6502 CPU). im Laufe der Zeit sind noch jede Menge CPUs dazugekommen.
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    11.03.2015
    Beiträge
    38
    Also bei Microcontrollern ist ASM wirklich Schwachsinn. Wenn da die Performance nicht reicht nimmt man halt einfach was schnelleres. Wenn man aber hardwaremäßig am Anschlag ist und mit wassergekühlten 5GHz CPUs am Wergeln ist, kann nur durch ASM noch einiges gerissen werden. Aber wo man mitspielen will muss am Ende jeder selber entscheiden. Und eins ist ja uns allen klar, am Ende entscheidet immer der Coder wie schnell etwas laufen wird...

  3. #3
    HaWe
    Gast
    finde ich vollkommen richtig.
    C (nicht unbedingt C++) ist grundsätzlich genau so schnell wie ASM (habe früher mit Turbo C und Turbo asm auf x386 "gearbeitet", um beide immerhin vergleichen zu können), aber C ist 1000x mächtiger und vielseitiger. Kein Wunder, dass man es bekanntlich "erfinden musste", um UNIX überhaupt programmieren zu können (wie man auch hier lesen konnte).
    Und wer wirklich Multitasking braucht, sollte ARMs verwenden, die von vornherein MT unterstützen (Arduino Due mit Due Scheduler, NXT mit nxtOSEK, EV3 mit POSIX pthread, oder RasPi, BBB...), warum sich hier die Arbeit machen, selber Speicher und Register zu sichern und wieder zurückzuschreiben? Hinzu kommt die extreme Speicher-Einschränkung, die AVRs haben - völlig ungeeignet für anspruchsvolle Robotik-Anwendungen (ich spreche allerdings nicht von Linienfolgern). Daher: mindestens ein Due für Robotik, zusätzliche ARMs für IO-Multiplexing. Alleine 6 Encoder-Motore mit pwm brauchen schließlich bereits 30 Dpins.
    Natürlich kann man auch gleich mit der erneuten Erfindung des Rades anfangen...

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von HaWe Beitrag anzeigen
    Und wer wirklich Multitasking braucht, sollte ARMs verwenden, die von vornherein MT unterstützen (Arduino Due mit Due Scheduler, NXT mit nxtOSEK, EV3 mit POSIX pthread, oder RasPi, BBB...), warum sich hier die Arbeit machen, selber Speicher und Register zu sichern und wieder zurückzuschreiben?
    Irgendeiner muss das MT mal schreiben, sonst kannst DU es dir nicht fertig besorgen.

    Zudem benötigt man ASM nur für die Funktion welche die Register bei einem Taskwechsel manipuliert.
    Das heisst alle Register auf den aktuellen Stack retten, den Stackpointer sichern, Stackpointer des neuen Tasks laden und gerettete Register vom neuen Stack laden.
    Passt alles auf eine A4-Seite.

    Zudem sprach ich nicht von einer bestimmten CPU, sondern nur über Umstände welche zwingend zu ASM-Routinen führen.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  5. #5
    HaWe
    Gast
    das meinte ich ja damit,es ist ja längst geschrieben,also warum sich dann noch mit asm rumquälen?
    das ist ja, als würde jeder Autor jedesmal erst den Buchdruck neu erfinden (sicher ne sinnvolle Sache an sich), um irgendein Buch mit mehr oder weniger sinnvollem Inhalt zu schreiben!

    für ARM (und sogar AVR) gibt es aber MT längst,also kann man doch gleich mit C oder was auch immer starten (und wenn nicht C, dann Basic oder Python!)

Ähnliche Themen

  1. Verkaufe Verkaufe Roboter " Dongbu Hovis Eco " C u.C++ Programmierung Bausatz
    Von pinnemen im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 03.08.2014, 19:15
  2. Moderatoren und deren Arbeit
    Von Frank im Forum Anregungen/Kritik/Fragen zum Forum und zum Wiki RN-Wissen
    Antworten: 10
    Letzter Beitrag: 24.03.2011, 10:18
  3. motoren und deren polen
    Von robotikmns im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 16.01.2009, 22:59
  4. Begriffe und deren Bedeutung
    Von crAy0nd0pe im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 30.12.2007, 13:58
  5. Newby-Frage zu Entfernungsmessern und deren Steuerung
    Von xsofasurfer im Forum Sensoren / Sensorik
    Antworten: 7
    Letzter Beitrag: 14.11.2006, 21:00

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress