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?
10
Odpowiedzi:
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.
źródło
sin()
icos()
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.