Hallo. Ich bin wohl gerade zu blöd! Ich will auf einem STM32F4 mit float rechen. Normales A = B * 1.34536, geht aber nun brauche ich die Sinus Funktion. Allso math.h geladen und mal A = sinf(b) geschrieben. Fehler: Findet sinf nicht und ich verstehe gerade nicht warum. Was kann man hier falsch machen oder besser wie geht es richtig?
Dirk schrieb: > A = B * 1.34536 ist allerdings eine double Berechnung die nicht von der FPU profitiert. Das kleine 'f' an den Konstanten macht einen großen Unterschied.
Dirk schrieb: > Fehler: Findet sinf nicht und ich verstehe gerade nicht warum. Bitte Fehlermeldung posten, damit man sehen kann, ob der Compiler oder der Linker "sinf nicht findet". Ist "sinf" ein Tippfehler? Die Funktionen heißen sin() und cos(). Außerdem musst Du dem Linker noch mitteilen, dass die Mathe-Lib dazugelinkt werden soll, i.a. durch "-lm".
sin ergibt das gleiche! #include <math.h> wie den sonst? Das war nur mal so eben dahin geschieben, das f ist schon im Code wo es hin gehört.
sinf() gibt es und rechnet in float in der FPU, sin() in double und damit braucht es deutlich länger.
Linker??? Da muss ich mal schauen, das könnte es sein. Habe gerade nicht das Projekt hier, muss ich nachher zuhause prüfen.
Dirk schrieb: > #include <math.h> wie den sonst? Das ist für den Compiler, was hast Du für den Linker getan? Da musst Du noch die math-Lib hinzulinken ("-lm"). Zeig bitte die Fehlermeldung. Eine Beschreibung des Fehlers in Worten hilft hier nicht weiter.
Ich hätte noch anzubieten: #include <arm_math.h> * @brief Fast approximation to the trigonometric * sine function for floating-point data. * @param[in] x input value in radians. * @return sin(x). */ float32_t arm_sin_f32(float32_t x); Das wäre dann "echtes 32-Bit float" statt double. Ausserdem gilt was Frank schon geschieben hat (ist aber nicht relevant zur Compile-Zeit): Frank M. schrieb: > Außerdem musst Du dem Linker noch mitteilen, dass die Mathe-Lib > dazugelinkt werden soll, i.a. durch "-lm".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.