www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fixkomma library für den AVR?


Autor: Hanno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich werde im Moment mit den float und double-typen im gcc nicht ganz
glücklich. Die sind ja bekanntermaßen Spericher- und
Taktzyklen-Fresser, und ich brauche ja nur ein paar bits nach dem
Komma.
Also meine Frage: Kennt jemand eine Fixkomma (fixed-point-math) library
für den avr-gcc?
Selbermachen? Schon gut. Hab ich schon. Aber die division im gcc ist
mir auch noch zu langsam (600 zyklen für zwei 16-Bit-Werte). Das geht
noch schneller!
Also: Vorschläge?

Danke und Gruß,
Hanno

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher weißt Du denn, daß die Division noch schneller geht? ;-)

Da die Zyklenzahlen für die Division stark von den Operanden abhängen,
ist sowas sowieso 'ne Hausnummer.  (Division durch 2^N sollte
erheblich schneller gehen. :)

Ich habe noch ein gutes altes Buch ,,Arithmetische Algorithmen der
Mikrorechentechnik'' im Schrank, danach könnte man sicher sowas
implementieren.  Allerdings würde ich an Deiner Stelle einen
derartigen Aufwand nur für eine größere Serienproduktion treiben und
ansonsten lieber den nächstgrößeren Controller benutzen.  Das ist
preiswerter.  Ansonsten wirst Du bei einem umgerechneten
,,Stundenlohn'' von ein paar Cent rauskommen.

Ob die Portierung einer `aribtrary precision arithmetic library'
(z. B. libgmp) einfacher ist, mag ich nicht einzuschätzen.

Autor: Hanno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ok, erwischt! :)
Ich habe kurz die Appnotes überflogen und gesehen, dass da mit wenig
Assembler in 100-200 Zyklen 16-Bit (integer) Divisionen gemacht
werden.
Das kommt mir schon recht entgegen. Vielleicht baue ich mir das passend
ein (32 Bit?).
Ich bin fast vom Stuhl gefallen, als ich gestern gesehen habe, dass das
Umwandeln einer float-Zahl nach Ascii im gcc 14000 Takte braucht.
Spätestens da bin ich dann mit Fixkomma um Längen schneller.

Das mit dem Stundenlohn ist bei meinen Einzelstücken eh ein Punkt, über
den man besser nicht nachdenkt :)

Gruß,
Hanno

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.