Fixkomma library für den AVR?

Gast #73545
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
Gast
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.
Gast
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.