- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Grenzen des Asuro

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    68
    Beiträge
    697

    Grenzen des Asuro

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Asuro hat ja Grenzen insbesondere bei Geschwindigkeit (8MHz) und Speichergröße (7KB verfügbar für Programme). Wie schnell kommt man in der Praxis an diese Grenzen und gibt es Möglichkeiten diese zu umgehen?

  2. #2
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    8 mhz reichen absolut vollkommen aus. keine chance dass er zu langsam rechnet... schliesslich gibts nicht sooo komplexes zu berechnen, und wenn du bedenkst dass dein taschenrechner nicht mal 2 mhz hat und trotzdem verddammt schnell ist...

    7 kb können gelegentlich mal knapp werden, im allgemeinen aber auch kein ernstzunehmendes problem. 7 kb flash sind zwischen 10 und 20 kb code, also maximal etwa 20.000 zeichen. rechne für jede zeile 10 zeichen (mehr sinds meist nicht, und viele funktionen sind sogar noch kürzer), dann kannst du ein programm mit 2000 zeilen schreiben. da musste schon echt was tolles schaffen.

    ich hatte mit beiden grenzen noch keine probleme.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    68
    Beiträge
    697
    Danke für die Info. Das habe ich bisher nicht in der Klarheit gelesen und schon über Aufrüsten nachgedacht.

    "7 kb flash sind zwischen 10 und 20 kb code" - Kannst Du dies bitte exakt darlegen?

  4. #4
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    nein, das ist bloss ne schätzung.

    das was am ende rauskommt, also die hex-datei, ist maschinencode.

    es werden alle funktionen in c erstmal in assemblerfunktionen umgewandelt, und dann in prozessorlesbare sprache gewandelt. prozrssorlesbare sprache braucht keine...

    -namen für variablen
    -namen für funktionen
    -klammern, kommas, sonstige sonderzeichen
    -kommentare
    (damit ist schonmal fast alles was man so tippt raus)

    jede unktion wird durch mehrere assemblerfunktionen ersetzt. deshalb kann man nochmal gut sparen, wenn man funktionen in assembler selbst schreibt. dadurch fallen überflüssige zeilen raus.

    nochmal sparen kann man indem man nicht die ganze asuro library mitkompiliert (also entweder die neueste lib nutzen, oder nicht gebrauchte funktionen aus der asuro.c auskommentieren). beispielsweise braucht auch ein hochkomplexes geradeausfahr-programm nur MotorSpeed, MotorDir, und evtl Odometriedata oder die neuen Encoder-funktionen. werden keine leds benötigt, kann man schonmal alle led-funktionen rauslassen - die werden nämlich normaler weise immer mitkompiliert.

    auch im makefile kann man noch in den compilereinstellungen einstellen, dass der code möglichst kompakt gehaltet werdenn soll, dafür dauert das kompilieren etwas länger. dadurch kann man nochmal ein paar bytes sparen.

    und es geht noch weiter: das größte hex-file das ich mal gefasht habe war etwa 11 kb gross. warum? nicht alles was drinsteht ist echt das was in den prozessor kommt - es sind zeilennummern, steuerzeichen, und vor allen dingen zeilenweise checksums. auch hier wirds nchmal weniger...


    trotzdem, wenn du aufrüsten willst:

    besorge dir bei Reichelt einen atmega168 und lade mithilfe eines programmers deine programme rein.
    besser: baue dir einen ISP-snschluss (ist grade in einem der aktuellen threads thema) dann brauchst du den prozessor nicht mmer rausnehmen.
    alternativ: lade dir den bootloader von henk runter
    http://home.planet.nl/~winko001/Asur...uBtlPagFrm.htm
    und flashe diesen mithilfe des programmers. das ist zwar nicht der originale bootloader von arexx, aber er funktioniert um programme per infrarot rüberzuladen.
    auf jeden fall brauchst du einen Programmer um fusebits zu setzen (das sind sozusagen die einstellungen des prozessors, also zB dass der externe Quarz benutzt werden soll usw.)

    nahc dieser aktion hast du dan 16 kB programmspeicher (bzw. 15+bootloader).
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    68
    Beiträge
    697
    Danke für die interessanten Informationen.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199

    Re: Grenzen des Asuro

    Hallo,
    Zitat Zitat von ehenkes
    Asuro hat ja Grenzen insbesondere bei Geschwindigkeit (8MHz) und Speichergröße (7KB verfügbar für Programme). Wie schnell kommt man in der Praxis an diese Grenzen ... ?
    • 8MHz aus dem Beitrag hier
      Zitat Zitat von HermannSW
      ...[list:8b41adac61]
    • bei meinem Linienfolger wird die innerste Schleife in 0.8ms durchlaufen, der Asuro bekommt also selbst bei 2m/s noch alle 1.6mm neue Daten, auf die er dann reagieren kann
  7. Zitat Zitat von HermannSW
    ...
    [*]7KB schau mal unter examples/SelfTest, der ist ziemlich umfangreich (Quelltext) und paßt auch noch rein ...[/list:u:8b41adac61]
Gruß, Hermann.
myIrAsuro.Bild hier  
ZitierenZitieren

  • #7
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    kein problem.

    Probier mal folgendes:

    kommentiere die erste zeile des programms aus (#include asuro.h) und kopiere dann die funktionen die du wirklich brauchst aus der asuro.c in deinen programmcode (vor die main funktion!!).

    also init(), motorspeed, motordir usw. aber eben nur die die du wirklich brauchst. und dann schreibe ein programm - du wirst sehen beim flashen, es ist sehr klein. ich laube auf den asuro passen etwa 150 "Pages" wie das flash tool sie nennt, ein "normales" programm (einfache linienverfolgung, gradeausfahen, server ein/ausgabe usw) hat mit der kompletten (!!) lib nur etwa 50 - 70 pages. mit der neuen, modularisierten lib wo von allein nur die benötigten funktionen kompiliert werden, sogar noch deutlich weniger. aber melde dich mal wenn du die 7kb geschafft hast, wir erzählen dir dann wie du aufrüsten kannst...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  • #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    68
    Beiträge
    697
    @damaltor: Danke für die umfangreichen Infos! Klasse Forum hier.

  • Berechtigungen

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

    12V Akku bauen