ATtiny: nessun supporto per la moltiplicazione?


9

È vero che gli AVR ATtiny non hanno supporto hardware per la moltiplicazione? Sembra funzionare bene come faccio moltiplicazione nel mio codice. Ho anche incluso math.h e ho un paio di calcoli sin () e cos (). Sto correndo qualche enorme penalità di 800 cicli per questi calcoli, qualcuno lo sa?


utilizzare le tabelle di ricerca per il trig e l'interpolazione lineare se si desidera una risoluzione migliore (con errore tollerabile)
vicatcu,

Risposte:


12

ATtiny non ha un moltiplicatore hardware, ma la moltiplicazione del software non è così costosa come si suppone. Consultare la nota sull'applicazione AVR200 e il codice associato per alcune routine di moltiplicazione e divisione ottimizzate.

I calcoli di seno e coseno possono essere accelerati utilizzando le tabelle di ricerca, scambiando efficacemente lo spazio di memoria per i cicli del processore. Tuttavia, come ha giustamente sottolineato @DaveTweed, l'approssimazione algoritmica di seno e coseno nel software spingerà il conteggio dei cicli più vicino all'intervallo che temete.


5
L'approssimazione polinomiale per sin()e in cos()genere comporta diverse (3-5) moltiplicazioni, oltre ad aggiunte / sottrazioni multiprecisione, intervallo di piegatura, ecc., Quindi 800 orologi per chiamata di funzione non sono irrealistici.
Dave Tweed,

@DaveTweed: Grazie, buon punto. A cura di chiarire.
Scott Winder,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.