Hallo hätte da eine Bitte! Ich möchte eine FFT auf einem C167 realisieren. Will das so machen, dass ich den eigentlichen FFT in Assembler (Code habe ich) und den c167 ueber C programmier. Also den Assemblercode ins C einbinden. Nun die Frage: Hat jemand eine Ahnung, wie ich von C aus direkt ein Register des C167 ansprechen kann? z.B das mit den berechneten Werten. Und welche Datenstruktur wuerde sich am besten eignen?? oder ist es am besten den Bytestream mal zwischenzeitlich in einem File abzulegen (füer Testzwecke sicher..denke ich mir halt). Danke für jegliche Antwort mfg Dani
hi die 2'te, wäre schon sehr dankbar, wenn mir jemand sagen koennte, wie ich direkt auf ein Register zugreifen koennte... hab nämlich nicht wirklich was darüber gefunden.. danke.. mfg dani
Hallo Daniel, ich selber benutze den C167 nicht und weiss auch nicht, welchen Compiler Du benutzt. Ich würde so vorgehen: 1. In der Doku schauen, wie Variablen an Unterprogramme in Registern übergeben werden. Manche Compiler haben auch spezielle Directiven dafür. 2. Eine Demo-Funktion schreiben und dann im erzeugten Assemblercode schauen, welche Register verwendet werden. Du kannst z.B. Parameter innerhalb der Funktion an globale Var. übergeben, dann siehst Du es sehr schön. Pass aber auf, dass Dein Code (weil unnütz) wegoptimiert wird. Bei gcc: Variable als volatile deklarieren. Viel Spass, Stefan
Hallo Daniel, Wie arbeitet deinen Asm routine, wird er von einen timer interrupt auferufen? Ich würde die resultaten in einen speicherbereich schreiben, und das dann von der C routine auslesen. Denn der FFT routine gibt wahrscheinlich mehrere bytes als resultat, oder? Grüße Mark,
Hallo Daniel, Welche Compiler benutzt Du? Grüße Mark,
hi mark! bin leider ein noob...hab da eine software von keil (micro vision), das bietet mir eine c umgebung..ka welchen compiler das verewendet..parallel hab ich noch das visual c++ 6 drauf.. ja so dachte ich mir das..durch einen interrupt wird die asm routine gesteuert..ja die execution time von der 1024 point fft (butterfly) is max 13 ms und die ergebnisse werden zwecks hinreichender genauigkeit in einer groesse von 16 bit gespeichert.. wenn ich diese infos habe, duerfte das auslesen ja auch kein problem mehr sein, fuer mich jedoch schon..da totaler anfaenger auf dem gebiet :) kannst du mir ein beispiel geben, wie ich z.b ein register in eine c variable speichern kann? mfg dani
@stefan: danke werd deiner anregung mal nachgehen ;) mfg dani
Auf der Homepage von Keil gibt es Application-Notes. U.a. einige zum C166 und C167. Könnte mir vorstellen, daß da was für Dich dabei ist
@AndreasH thx! hab da zwar vorher schon mal gstöbert, aber nix gfunden. (vielleicht haben die ihre application notes ja erweitert) hab da schon einen hinweis bekommen! danke noch einmal, mfg dani
kennst Du das? http://www.infineon.com/cgi/ecrm.dll/ecrm/scripts/prod_cat.jsp?oid=-8137 Das Auslesen von Registern und Speicherstellen mit µVision/C166-Compiler steht in den jeweiligen Manuals. Tipper
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.