hi zusammen, ich benutze grad ezdsp f28335 floating point von TI,um AC Motor zu regeln.Dabei muss ich sinus funktion benutzen.Ich hab <math.h> eingefügt und drin gibts doch funktion sinus. Aber wenn ich sie aufrufe,kommt eine fehlermeldung von CCS dass die funtion nicht gefunden. als zweites, möchte ich gern fragen, bei floating point prozessor kann ich formel wie "natur" benutzen? also meine ich wie in matlab, ein formel ganz natur beschrieben wie z.b. float a,b,x; y = ax + b, usw. Bei fixed point (wie bei f2812 von TI) sollte man IQmath benutzen? Was ist genau unterschied weiß ich noch nicht:( Könnt ihr mal mir helfen? vielen dank im voraus:-) Gruß aus uni Hannover:-)
Zur Berechnung von Sinus-Funktionen ist bei diesem DSC auch IQ-Math zu verwenden. Über math.h müsste dies aber auch möglich sein, aber damit habe ich mich noch nicht beschäftigt. Und meine andere Frage in diesem Subforum bleibt ja leider offen. Zunächst muss die neuste iqmath Library besorgt werden. Konfiguration im Linker (Speicherbereichszuweisung) müssen auch durchgeführt werden. Eine Sinus-Kalkulation sieht dann im Source wie folgt aus: void math_test(void) { _iq l_iq_in1,l_iq_out1 //====================================================================== ================================ // Hier ein paar Trigonometrische Beispiele: //l_iq_in immer wenn float ins IQ Format gewandelt wird //l_iq_out immer wenn eine IQ-Funktion ein IQ Wert (l_iq_in) berechnet - Ausgabe im IQ Format //g_float_... g=globale Variable - Definiertes Format von Variablen für die Funktion _IQNtoF,_IQNint l_iq_in1 =_IQ(PI/5); l_iq_out1 =_IQsin(l_iq_in1); //Execution Cycles = 46 g_float_sin1 =_IQtoF(l_iq_out1); //Execution Cycles = 22 } Wegen knapper Zeit kann ich keinr weitere Hilfestellung geben, aber ich hoffe damit etwas geholfen zu haben.
Danke Tim für dein Antwort:-) was macht eigentlich diese IQmath? wie in matlab , man kann doch direckt sinus oder y = ax+ b benutzen oder? ich denke bei foating point prozessor muss es gehen ,bin mir aber nicht sicher:( für sinus funktion hab ich so gemacht:
1 | #include <math.h> |
2 | void clack( float32 x, float y) |
3 | {
|
4 | //....
|
5 | y = sin(x); |
6 | //....
|
7 | }
|
Code Composer studio sagt dann : ...... ...... <Linking> undefined first referenced symbol in file --------- ---------------- _Cos D:\\Programme\\MyProjects\\RL_3phase\\Debug\\park_sinus.obj _Sin D:\\Programme\\MyProjects\\RL_3phase\\Debug\\park_sinus.obj _park_calc D:\\Programme\\MyProjects\\RL_3phase\\Debug\\RL_3phase.obj ..... Frage ist ,ob es mir noch sorce file fehlt,"math.c" oder bibliothek file "math.lib" z.b.?
Mathe Library beim Linken mit angeben. GCC-Syntax ist -lmath. CCS evt. ein bisschen anders. Viele Grüße, Martin L.
danke Martin:-) ich glaube das ist mein fehler:D die header file noch nicht in richtige ordner reinzukopieren:D wünsche euch noch schöne weihnachtszeit:-) ciao
dringend bitte helfen:( ich hab math.h gefunden und in file includen.aber es zeigt gleiche fehlermeldung. kann jemand mir helfen? und die offene frage bei floating point operator? danke euch im voraus!
schon Fehler gefunden:) das war ein dummer fehler von mir. Ich hab "Sin(x)" geschrieben es ist "sin(x)" in math.h deklariert:D:D:D
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.