Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hi all, > > > > Attached are some FFT routines in assembler, adapted from the work of ChaN. > > Any suggestions for improvement are welcome. > > > > The routines: > > 1. perform a wave capturing (a series of AD conversions in Free Running Mode) > > 2. execute 'butterfly operations' > > 3. calculate the frequency spectrum > > > > I have tested them on my Pro-Bot128 and plan to use them for sound control, > > in stead of the much slower routines in cc I used until now. > > Some figures with results are included in the attached zip file too. > > > > Torsten, you were right twice: > > - I needed access to flash in assembler for the sin/cos and other tables. Since > > this is not possible directly, I now copy these to ram before use. (For this > > reason I cannot process more than 256 samples, helas!) > > - I need to disable the global interrupt. But to my great surprise, not only in the > > ADC capture but in all routines. If I do not do that, I end up with garbage results. > > > > Peter: can you explain why interrupts mess up my routines? Is it that interrupts > > trigger actions that change registers while my routines are running? Is it the Y- > > register? > > Hello Pepe, > > you are right. I just had forgotten that the Y-Register should better not be changed, > because it is normally used as Data Stackpointer. The interrupt routines are using it > to save the contents of registers. > > Regards, > > Peter > > > > > Regards, > > Pepe