Forum: Mikrocontroller und Digitale Elektronik Siemens C167 + FFT + Register auslesen in C


von Daniel Slamanig (Gast)


Lesenswert?

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

von Daniel Slamanig (Gast)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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

von Mark de Jong (Gast)


Lesenswert?

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,

von Mark de Jong (Gast)


Lesenswert?

Hallo Daniel,

Welche Compiler benutzt Du?

Grüße Mark,

von Daniel Slamanig (Gast)


Lesenswert?

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

von Daniel Slamanig (Gast)


Lesenswert?

@stefan:

danke werd deiner anregung mal nachgehen ;)

mfg

dani

von AndreasH (Gast)


Lesenswert?

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

von Daniel Slamanig (Gast)


Lesenswert?

@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

von Tipper (Gast)


Lesenswert?

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

von Daniel Slamanig (Gast)


Lesenswert?

thx!

sagte ja..ich bin ein noob ;)

mfg

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
Noch kein Account? Hier anmelden.