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.