Chciałbym napisać swoją funkcję arcus tangens do wykorzytania na mikrokontrolerze stm. Jakieś wskazówki?
Użyj opensourcowego gotowca http://www.opensource.apple.com/source/Libm/Libm-315/Source/Intel/atan.c
Tablica lookupowa wraz z ew. interpolacją.
Tak jak pisał up ztablicuj wyniki
Zacznijmy od tego: jaki to STM i czy w ogóle warto to robić?
Stm32f401 84MHz
To one chyba mają jednostkę zmiennoprzecinkową, więc w czym rzecz? Skompilować z odpowiednim przełącznikiem + włączyć FPU w startupie i jazda. Z tym, że chyba będziesz musiał używać atanf zamiast atan...
Tak mają FPU. ale na AVR tablicowanie ma sens?
Rozwinę: jeżeli potrzebujesz wykonywać wiele operacji zmiennoprzecinkowych to błędem jest użycie AVRa. Jeżeli potrzebujesz konkretnie atan: można stablicować, użyć arytmetyki fixed-point, można też podlinkować libm.a jeżeli pamięci starcza. Generalnie pierwszym co należy z rozmysłem uczynić, to dobrać sprzęt do wymagań żeby potem nie musieć wykonywać nerwowych ruchów.
Jaki projekt chcesz zrealizować?
Chcę zbudować drona, czyli akcelerometr + żyroskop i wywoływanie atan co 5ms.
Trochę od złej strony się za to zabierasz. Zamodeluj to najpierw w jakimś Matlabie czy innym Octave'ie, ustal jakiej potrzebujesz rozdzielczści i co poza obliczeniami (i w jakim tempie) będzie wykonywać proc. Tzn. ile czasu dajesz regulatorom na ustalenie stanu silinków, jak zrealizujesz kontrolę zasilania itd.