Hej Mój problem wygd±da tak ,jakbym adresowa³ i0 w DAG1 on sobie co¶ innego Tu fragment kodu, ni¿ej opis problemu:
SCRAMBLER: /***** Pierwsza czê¶æ *******/ i4 = Input_Real; i0 = FFT_IO_Real; m4 = 1; m0 = Mod_Value; // Mod_Value = 2 ^ 14-log2 (N) l4 = 0; l0 = 0;
CNTR = N; ENA BIT_REV; DO SR_Loop UNTIL CE; ay1 = DM(i4,m4); // Reversing Real part SR_Loop: DM(i0,m0) = ay1; DIS BIT_REV;
/***** druga czê¶æ *******/ i4 = Input_Image; i0 = FFT_IO_Image; m4 = 1; m0 = Mod_Value; l4 = 0; l0 = 0;
CNTR = N; ENA BIT_REV; DO SI_Loop UNTIL CE; ay1 = DM(i4,m4); //Reersing image part SI_Loop: DM(i0,m0) = ay1; DIS BIT_REV; rts;
To jest funkcja haszuj±ca przed moim FFT,
I , problem w tym ,¿e pierwsza czê¶æ kodu jest wykonywana poprawnie, dane z tablicy "Input_Real" s± poprawnie transferowane do "FFT_IO_Real" Za¶ w drugiej czêsci on przerzuca dane do "Input_Real" zamiast do "FFT_IO_Image" haszuje je poprawnie, ale czemu nie tam gdzie trzeba ???, przecie¿ w³a¶ciwie obie czê¶ci s± takie same. Co trzeba wiêcej zrobiæ ¿eby wska¼nik i0 adresowa³ siê poprawnie ???
Deklaracja tablic wygl±da nastêpuj±co:
.SECTION/DM sound_data;
.VAR/CIRC Input_Real[N]; .VAR/CIRC Input_Image[N];
.VAR/CIRC FFT_IO_Real[N]; .VAR/CIRC FFT_IO_Image[N];
gdzie N=64;
I za cholere nie mogê doj¶æ co jest nie tak.
Je¶li kto¶ by mia³ chwilê ¿eby rzuciæ na to okiem bêdê bardzo wdziêczny. mogê wys³aæ ca³y kod niezbêdny do zobacznie b³êdu ( Jest naprawde bardzo krótki i jest na VisualDSP, i sesja 2181 simulation)