Bin gerade bei einem Projekt mit FFT. Dafür nutze ich die FFL Library von openmusic labs. Das ganze läuft zwar gut aber:
Nun wollte ich code für die dynamische Pegelstellung miteinbauen. Beim ansehen der Werte aus dem ADC kommen aber sehr seltsame Werte bei raus. (700 in ruhe, schon mal um 1500 bei Musik)
Das ist der Code zum auslesen, wie er bei einem Beispiel dier FFT Lib dabei war: (ADC im freerun)
while(!(ADCSRA & 0x10)); // wait for adc to be ready
ADCSRA = 0xf5; // restart adc
byte m = ADCL; // fetch adc data
byte j = ADCH;
k = (j << 8) | m; // form into an int
k -= 0x0200; // form into a signed int
k <<= 6; // form into a 16b signed int
Kann mir bitte jemand erklären was hier passiert? Insbesondere die beiden unteren Zeilen werfen die fragen auf.