Ich versuche einen IIR_1 Filter zu nutzen und erhalte folgende Felermeldung: C166 COMPILER V6.04 - SN: K6R9U-00147E COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2006 *** CoNOP [IDX0+QX0],[IN] ;(IDX0)=(IDXX0)+(QX0) *** ___________^ *** ERROR C195 IN LINE 89 OF xc166lib_keil\iir_1.c: inline-asm: invalid expression token Die Fehlermeldung bezieht sich auf die Keil Library DspLib_Keil.h und die darin enthaltene Filterdatei IIR_1.c deren Assambler Code hier diese Fehlermeldung erzeugt. Wie kann ich diese Fehlermeldung vermeiden, hat vielleicht jemand einen Rat. Wie erzeuge ich einen Speicherbereich im DPRAM? Die Datentypen sind: DataS filter_output [16]; DataS idata pastsamples[2*3+1]; typedef struct { DataS b3; DataS b2; DataS b1; DataS b0; DataS a2; DataS a1; DataS a0; }filter_coef; Der Aufruf der Filterfunktion lautet: filter_output[index] = IIR_1((DataS*)&filter_coeff, (DataS*)(buffer+(unsigned long)index), 3, pastsamples);
Hast du externes ROM? Ich denke, dass dein Problem vom Speichermodell her kommt. Der Quelltest wird, denke ich, irgendwo ins externe ROM gelegt und kann mit seinen Pointern nicht mehr ins DPRAM (intern) kommen. Die Adresse IDX0 ist also zu groß für den Inline-Assembler.
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.