Gast
#1311630
Hi, ich benutze die XC167Lib auf einem XE167 80MHz Infineon EasyKit. In der Dokumentation zur library (XC166Lib - A DSP Library for XC16x Family) steht, dass für eine real_DIT_FFT mit 1024 Werten 109111 Taktzyklen benötigt werden. Dies würde bei einem Prozessortakt von 80MHz ~1,36ms entsprechen. Gemessen habe ich allerdings eine Rechenzeit der real_DIT_FFT() Funktion von 3,8ms. Das macht mich ein wenig nachdenklich und ich frage mich, ob ich etwas wichtiges übersehen habe. Ich verwende Keil uVision3 als Entwicklungsumbebung. Als Startupfile benutze ich die START_V3.A66, welche beim Infineon EasyKit im Toggle_Pin Beispiel mitgeliefert wird. Die Parameter für die PLL wurden nicht verändert und waren von Beginn an auf 80MHz eingestellt. Der Prozessor sollte also auch tatsächlich mit 80MHz laufen. NDIV = 19; PDIV = 0; K2DIV = 1 Für die Kontrolle der benötigten Zeit habe ich vor Aufruf der real_DIT_FFT Funktion einen Pin auf high gesetzt und direkt danach wieder auf low. Die Breite des Impulses entspricht dann der für die Berechnung benötigten Zeit. Da das high bzw. low setzen eines Pins im Nanosekunden Bereich liegt, fällt die dafür benötigte Zeit nicht ins Gewicht. Ich kenne mich mit der Keilumgebung noch nicht so gut aus und denke, dass da evtl. nur irgendwo noch ein Haken gesetzt werden muss. Ich habe schon versucht die Daten, welche die real_DIT_FFT Funktion benötigt, in verschiedene on-chip RAM sections zu legen (sdata, idata), aber leider ohne nennenswerten Erfolg. Hat von euch jemand eine Idee, wie ich die Berechnung der FFT so beschleunigen kann, dass ich mich den 1,36ms nähern kann? Grüße, Daniel