ATtiny: Keine Unterstützung für die Multiplikation?


9

Stimmt es, dass die ATtiny AVRs keine Hardware-Unterstützung für die Multiplikation haben? Es scheint gut zu funktionieren, wenn ich meinen Code multipliziere. Ich habe auch math.h aufgenommen und einige sin () - und cos () -Berechnungen durchgeführt. Weiß ich für diese Berechnungen eine riesige Strafe von 800 Zyklen?


Verwenden Sie Nachschlagetabellen für Trigger und lineare Interpolation, wenn Sie eine bessere Auflösung (mit tolerierbarem Fehler)
wünschen

Antworten:


12

Der ATtiny verfügt nicht über einen Hardware-Multiplikator, aber die Software-Multiplikation ist nicht ganz so teuer, wie Sie vermuten. Im AVR200-Anwendungshinweis und im zugehörigen Code finden Sie einige optimierte Multiplikations- und Divisionsroutinen.

Sinus- und Cosinusberechnungen können mithilfe von Nachschlagetabellen beschleunigt werden, wodurch Speicherplatz effektiv gegen Prozessorzyklen eingetauscht wird. Wie @DaveTweed jedoch richtig hervorhob, wird durch die algorithmische Approximation von Sinus und Cosinus in der Software die Zyklusanzahl näher an den von Ihnen befürchteten Bereich angehoben.


5
Die Polynomnäherung für sin()und umfasst cos()typischerweise mehrere (3-5) Multiplikationen plus Multipräzisionsadditionen / -subtraktionen, Bereichsfaltung usw., sodass 800 Takte pro Funktionsaufruf nicht unrealistisch sind.
Dave Tweed

@ DaveTweed: Danke, guter Punkt. Zur Verdeutlichung bearbeitet.
Scott Winder
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.