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?


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.