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?
9
Réponses:
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.
la source
sin()
etcos()
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.