mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP sinus funktion bei ezdsp f28335


Autor: sinus funktion bei ezdsp f28335 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:-)

Autor: Tim R. (mugen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: sinus funktion bei ezdsp f28335 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
#include <math.h>
void clack( float32 x, float y)
{
   //....
   y = sin(x);
   //....
}

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.?

Autor: Martin Laabs (mla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathe Library beim Linken mit angeben. GCC-Syntax ist -lmath. CCS evt. 
ein bisschen anders.

Viele Grüße,
 Martin L.

Autor: tequila aus hannover (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: tequila aus hannover (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: tequila aus hannover (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.