Forum: Mikrocontroller und Digitale Elektronik Wie passt das in ATmega8?


von Daniel_s (Gast)


Lesenswert?

Hallo

Ich bin gerade an einer Voruntersuchung für eine FFT in einem ATmega8. 
Ich konnte es noch nicht testen, da ich noch keine Hardware habe. In 
einem Codebeispiel habe ich folgende Variablendeklaration gefunden
1
typedef struct _tag_complex_t {
2
  int16_t  r;
3
  int16_t i;
4
} complex_t;
5
6
7
8
int16_t capture[FFT_N];      /* Wave captureing buffer */
9
complex_t bfly_buff[FFT_N];    /* FFT buffer */
10
uint16_t spektrum[FFT_N/2];    /* Spectrum output buffer */

FFT_N ist mit 256 definiert. Wie passt das aber in 1kB RAM? Die komplexe 
Struktur ist doch schon 1kB groß oder nicht? (256 * 2(komplex + 
imaginär) * 2Byte)

von Daniel_s (Gast)


Lesenswert?

es soll natürlich real und imaginär heissen

von bascommaherundguckda (Gast)


Lesenswert?

compilier doch mal und guck Dir das Ergebnis an - das geht auch ohne 
Hardware.. ;-)

von Karl H. (kbuchegg)


Lesenswert?

Daniel_s wrote:

> FFT_N ist mit 256 definiert. Wie passt das aber in 1kB RAM?

Der Compiler wirds dir schon sagen.
(Sorry, konnte nicht widerstehen)

Das kann natürlich nicht passen.
Sicher dass für FFT_N nicht irgendwo eine Obergrenze
dokumentiert ist, die auf einem Mega8 kleiner als 256 ist?

> Die komplexe
> Struktur ist doch schon 1kB groß oder nicht? (256 * 2(komplex +
> imaginär) * 2Byte)

Yep.

von Uwe N. (ulegan)


Lesenswert?

Das stammt doch aus dem FFT-Paket von Elm-Chan.
Wenn du dir das Makefile dazu anschaust, siehst du, dass der es für 
einen mega128 übersetzt hat. Der hat 4k Ram und da passen die Strukturen 
rein. In den mega8 leider nicht...

von Daniel_s (Gast)


Lesenswert?

Auf der Homepage stand es wäre für nen ATmega8 aber im Makefile steht 
als Target

MCU_TARGET     = atmega128

Ok dann geht das nicht mit 256 samples




Danke

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.