ATtiny: ¿no hay soporte para la multiplicación?

9

¿Es cierto que los AVR ATtiny no tienen soporte de hardware para la multiplicación? Parece funcionar bien mientras hago multiplicaciones en mi código. También he incluido math.h y tengo un par de cálculos sin () y cos (). ¿Me estoy encontrando con una multa enorme de 800 ciclos por estos cálculos, alguien lo sabe?

David Högberg
fuente
use tablas de búsqueda para trig e interpolación lineal si desea una mejor resolución (con un error tolerable)
vicatcu

Respuestas:

12

El ATtiny no tiene un multiplicador de hardware, pero la multiplicación de software no es tan costosa como implica. Consulte la nota de aplicación AVR200 y el código asociado para ver algunas rutinas de multiplicación y división optimizadas.

Los cálculos de seno y coseno se pueden acelerar utilizando tablas de búsqueda, intercambiando efectivamente el espacio de memoria para los ciclos del procesador. Sin embargo, como señaló correctamente @DaveTweed, la aproximación algorítmica de seno y coseno en el software empujará el conteo del ciclo más cerca del rango que temes.

Scott Winder
fuente
55
La aproximación polinómica para sin()y cos()típicamente involucra varias (3-5) multiplicaciones, más sumas / restas de multiprecisión, plegamiento de rango, etc., por lo que 800 relojes por llamada a la función no es poco realista.
Dave Tweed
@DaveTweed: Gracias, buen punto. Editado para aclarar.
Scott Winder