Forum: Mikrocontroller und Digitale Elektronik C166 Einbindung von IIR Filter Fehlerhaft, DPRAM Probleme


von Christian K. (Gast)


Lesenswert?

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);

von Bernhard (Gast)


Lesenswert?

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