cast in high priority task was causing data issues + buffer overflow causing crazy issues
This commit is contained in:
Killorin 2025-04-17 12:53:51 -04:00
parent 22a3b5e795
commit d3abffa13d

11
main.c
View file

@ -187,10 +187,9 @@ void capture_waveform(UArg arg1, UArg arg2)
if (true) { if (true) {
adc_current_index = gADCBufferIndex; adc_current_index = gADCBufferIndex;
int32_t j = 0;
for(i=adc_current_index-FFT_BUF_LEN; i<adc_current_index; i++) { for(i=adc_current_index-FFT_BUF_LEN; i<adc_current_index; i++) {
//in[i].r = sinf(20*PI*i/FFT_BUF_LEN); adc_buffer_fft_sample[j++] = gADCBuffer[ADC_BUFFER_WRAP(adc_current_index + i)];
in[i].r = (float) gADCBuffer[ADC_BUFFER_WRAP(adc_current_index + i)];
in[i].i = 0;
} }
} else { } else {
// single read of options is atomic // single read of options is atomic
@ -231,7 +230,9 @@ void process_waveform(UArg arg1, UArg arg2) {
if(true) { // fft if(true) { // fft
for(i=0; i<FFT_BUF_LEN; i++) { for(i=0; i<FFT_BUF_LEN; i++) {
in[i].r *= w[i]; //in[i].r = sinf(20*PI*i/FFT_BUF_LEN);
in[i].r = (float) adc_buffer_fft_sample[i] * w[i];
in[i].i = 0;
} }
kiss_fft(cfg, in, out); kiss_fft(cfg, in, out);
@ -240,7 +241,7 @@ void process_waveform(UArg arg1, UArg arg2) {
#define DB(out) 10 * log10f(out.r * out.r + out.i * out.i) #define DB(out) 10 * log10f(out.r * out.r + out.i * out.i)
//adc_buffer_processed[i] = CONSTRAIN(HEIGHT- (int)roundf(0.5 * DB(out[i]))); //adc_buffer_processed[i] = CONSTRAIN(HEIGHT- (int)roundf(0.5 * DB(out[i])));
adc_buffer_processed[i] = CONSTRAIN(HEIGHT- (int) (DB(out[i])) + 64); adc_buffer_processed[i] = CONSTRAIN(HEIGHT- (int) (DB(out[i])) );
} }