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