Hilfe bei Initialisierung von Elm Chan FFT

OP #3219534
Lesenswert?

Hallo,
ich habe ein kleines Projekt, bei dem ich Sprache über Lautsprecher 
aufnehme und spektroskopieren will.
Dazu wollte ich den Code von Elm Chan verwenden. Leider habe ich zu 
wenig Erfahrung um den auf meinem Atmega324 zum laufen zu bringen.

In dem Code gibt es direkt eine ADC Abfrage:
1
/*------------------------------------------------*/
2
/* Capture waveform                               */
3

4
void capture_wave (int16_t *buffer, uint16_t count)
5
{
6
  ADMUX = _BV(REFS0)|_BV(ADLAR)|_BV(MUX2)|_BV(MUX1)|_BV(MUX0);  // channel
7

8
  do {
9
    ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADFR)|_BV(ADIF)|_BV(ADPS2)|_BV(ADPS1);
10
    while(bit_is_clear(ADCSRA, ADIF));
11
    *buffer++ = ADC - 32768;
12
  } while(--count);
13

14
  ADCSRA = 0;
15
}
Das MIkrofon hat einen eigenen Verstärker der an den ADC (ADC0)
2,5 V +- 2,5 V gibt.
Brauche ich dann noch den MUX0..2 ? Im Doc des µCs steht
"It is possible to select any of the ADC7..0 pins to replace the 
negative input to the Analog Comparator."
Ich hab doch garkeinen negativen Input !?

Von meinem ADC hole ich mir nur uint8 Werte.
Was muss ich denn alles bei der ELM Chan FFT anpassen ?


Besten Dank im Voraus
Lurchieee
Gast #3220398
Lesenswert?

Hallo Fe Li:

mit der ELM Chan FFT kenn ich mich jetzt nicht so aus.

Aber es gibt sonst auchn noch Probleme:

Fe Li schrieb:
> Das MIkrofon hat einen eigenen Verstärker der an den ADC (ADC0)
> 2,5 V +- 2,5 V gibt.

der ADC kann nur positive Spannungen annehmen also von 0-Vref, -2,5V 
können dir im schlechtesten Fall den µC zerstören.

du solltest auf die ausgangsspannung einen offset von 2,5V geben dann 
hast du 0V-5V Output und dann des ganze noch halbieren, also auf 0V-2.5V 
(wenn du die interne Referenzspannungsquelle nutzen möchtest)

Du kannst eventuell auch den Differentiellen Eingang des ADC nutzen, 
dann legst du an den positiven Eingang 0-2.5V und an den negativen die 
-2.5V-0V die musst du allerdings erst Positiv also auf 0V-2.5V bringen, 
in der berechnung des ADC Wertes werden sie dann negativ verwendet.

Schau am besten nochmal im Datenblatt nach unter ADC, beginnt ca bei 
Seite 201, da ist alles genau beschrieben.

Fe Li schrieb:
> Brauche ich dann noch den MUX0..2

der ist nur dazu da zwischen den Verschieden ADC channels umzuschalten.

Fe Li schrieb:
> "It is possible to select any of the ADC7..0 pins to replace the
> negative input to the Analog Comparator."

Achtung der Analog Comperator ist etwas anderes als der ADC 
(Analog-Digital-Converter)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren