ATtiny: brak obsługi mnożenia?

10

Czy to prawda, że ​​ATtiny AVR nie mają sprzętowej obsługi mnożenia? Wygląda na to, że działa dobrze, gdy mnożę kod. Uwzględniłem także matematykę. Mam kilka obliczeń sin () i cos (). Czy dostaję ogromną karę 800-krotną za te obliczenia, czy ktoś to wie?

David Högberg
źródło
użyj tabel odnośników dla trig i interpolacji liniowej, jeśli chcesz uzyskać lepszą rozdzielczość (z dopuszczalnym błędem)
vicatcu,

Odpowiedzi:

14

ATtiny nie ma mnożnika sprzętowego, ale mnożenie oprogramowania nie jest tak drogie, jak sugerujesz. Zobacz notatkę dotyczącą aplikacji AVR200 i powiązany kod, aby uzyskać informacje na temat zoptymalizowanych procedur mnożenia i dzielenia.

Obliczenia sinus i cosinus można przyspieszyć za pomocą tabel odnośników, skutecznie wymieniając przestrzeń pamięci na cykle procesora. Jednak, jak słusznie wskazał @DaveTweed, algorytmiczne aproksymowanie sinusa i cosinusa w oprogramowaniu zwiększy liczbę cykli w górę bliżej zakresu, którego się boisz.

Scott Winder
źródło
6
Przybliżenie wielomianowe dla sin()i cos()zwykle obejmuje kilka (3-5) zwielokrotnień, a także dodawanie / odejmowanie zwielokrotnienia, składanie zakresu itp., Więc 800 zegarów na wywołanie funkcji nie jest nierealne.
Dave Tweed
@DaveTweed: Dziękuję, dobra uwaga. Edytowane w celu wyjaśnienia.
Scott Winder