Was ist die schnellste Methode sin/cos auf einem STM32 ohne FPU (=> in Fixpunktarithmetik) zu berechnen? CORDIC oder ein anderes Verfahren? Wenn ich das richtig sehe braucht Cordic für 16bit mindestens 96 add/sub und 32 shifts, dazu den Schleifenoverhead, Speicherzugriff und letztendlich auch die Fallunterscheidung für die Bereiche. Ich vermute also, dass andere Approximationen schneller sind, besonders mit "single cycle" Multiplikation? In der CMSIS gibt es ja ein paar Funktionen dafür, von denen jede aber anders implementiert ist und verglichen mit CORDIC alle recht viel Speicher brauchen. Aber liege ich richtig damit, dass die Entwickler des Prozessors diesen auch am besten kennen und damit die optimale Lösung haben?
Wenn Du eine fortlaufende Schwingung bräuchtest, dann so: Beitrag "Re: minimalistische Berechnung einer Sinusschwingung"
Am schnellsten geht das mit einem Polynom, wenn der Prozessor eine schnelle 32x32 Multiplikation kann. Das soltte der ARM können. Alternativ mit Tabelle und quadratischer Interpolation. Cordic ist nur dann schneller, wenn der Prozessor keinen Hardware-Multiplizierer mit der gewünschten Wortbreite hätte.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.