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?
9
Antworten:
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.
quelle
sin()
und umfasstcos()
typischerweise mehrere (3-5) Multiplikationen plus Multipräzisionsadditionen / -subtraktionen, Bereichsfaltung usw., sodass 800 Takte pro Funktionsaufruf nicht unrealistisch sind.