ATtiny: pas de support pour la multiplication?

9

Est-il vrai que les AVR ATtiny n'ont pas de support matériel pour la multiplication? Cela semble bien fonctionner car je multiplie dans mon code. J'ai également inclus math.h et ai quelques calculs sin () et cos (). Suis-je confronté à une énorme pénalité de 800 cycles pour ces calculs, quelqu'un le sait-il?

David Högberg
la source
utilisez des tables de recherche pour trig et une interpolation linéaire si vous voulez une meilleure résolution (avec une erreur tolérable)
vicatcu

Réponses:

12

L'ATtiny n'a pas de multiplicateur matériel, mais la multiplication logicielle n'est pas aussi chère que vous l'imaginez. Voir la note d'application de l' AVR200 et le code associé pour des routines de multiplication et de division optimisées.

Les calculs de sinus et de cosinus peuvent être accélérés à l'aide de tables de recherche, échangeant efficacement l'espace mémoire pour les cycles du processeur. Cependant, comme @DaveTweed l'a correctement souligné, l'approximation algorithmique du sinus et du cosinus dans le logiciel poussera le nombre de cycles vers le haut plus près de la plage que vous craignez.

Scott Winder
la source
5
L'approximation polynomiale pour sin()et cos()implique généralement plusieurs (3 à 5) multiplications, ainsi que des ajouts / soustractions multiprécision, un pliage de plage, etc., donc 800 horloges par appel de fonction ne sont pas irréalistes.
Dave Tweed
@DaveTweed: Merci, bon point. Modifié pour clarifier.
Scott Winder