Elektronikprojekt Grupp 13 / Mbed OS test_fft_grp13

Dependencies:   mbed-dsp

Fork of mbed-os-example-blinky by Elektronikprojekt Grupp 13

Committer:
KlaraBengtsson
Date:
Mon Apr 10 11:30:39 2017 +0000
Revision:
63:f2972bba6f01
Parent:
62:1e5508bb8f16
Child:
64:92745a08320c
K

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
deeza 59:2cd4e73320cb 2 #include "arm_math.h"
deeza 59:2cd4e73320cb 3 #include "arm_const_structs.h"
deeza 44:7f2c1e8d0761 4
deeza 55:360b5bcdf9a7 5 const int FFT_SIZE = 32;
deeza 55:360b5bcdf9a7 6 int sampleCounter;
KlaraBengtsson 58:afa7b146b6bf 7 float samples[FFT_SIZE*2];
KlaraBengtsson 58:afa7b146b6bf 8 float magnitudes[FFT_SIZE];
deeza 59:2cd4e73320cb 9 //int SAMPLE_RATE_HZ = 10000;
deeza 59:2cd4e73320cb 10
KlaraBengtsson 62:1e5508bb8f16 11 float testData[] = {10, 20, 30, 40, 50, 60, 70, 80, 10, 20, 30, 40, 50, 60, 70, 80,10, 20, 30, 40, 50, 60, 70, 80, 10, 20, 30, 40, 50, 60, 70, 80};
deeza 54:fd99c80c68da 12
deeza 54:fd99c80c68da 13 void samplingBegin(){
deeza 55:360b5bcdf9a7 14 sampleCounter = 0;
deeza 59:2cd4e73320cb 15 //sätt hårdvaru inställningar här om det behövs
deeza 54:fd99c80c68da 16 }
deeza 54:fd99c80c68da 17
deeza 55:360b5bcdf9a7 18 void samplingCallback() {
deeza 59:2cd4e73320cb 19 //läs data
deeza 60:a83a5a34050b 20 samples[sampleCounter] = testData[sampleCounter];
deeza 55:360b5bcdf9a7 21 // sätter imaginär till 0
deeza 55:360b5bcdf9a7 22 samples[sampleCounter + 1] = 0.0;
deeza 55:360b5bcdf9a7 23 sampleCounter += 2;
deeza 55:360b5bcdf9a7 24 if (sampleCounter >= FFT_SIZE *2 ) {
deeza 55:360b5bcdf9a7 25 //här är sampling klar, buffert är full
KlaraBengtsson 63:f2972bba6f01 26 //skriv hårdvaru kod här
KlaraBengtsson 63:f2972bba6f01 27 }
deeza 55:360b5bcdf9a7 28 }
deeza 55:360b5bcdf9a7 29
deeza 54:fd99c80c68da 30 bool samplingIsDone() {
deeza 59:2cd4e73320cb 31 return (sampleCounter >= FFT_SIZE*2);
deeza 54:fd99c80c68da 32 }
deeza 54:fd99c80c68da 33
Jonathan Austin 1:846c97078558 34 // main() runs in its own thread in the OS
KlaraBengtsson 57:d15ff81fbeeb 35 int main() {
KlaraBengtsson 57:d15ff81fbeeb 36
KlaraBengtsson 57:d15ff81fbeeb 37 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 38
deeza 59:2cd4e73320cb 39 S = & arm_cfft_sR_f32_len32;
KlaraBengtsson 57:d15ff81fbeeb 40
KlaraBengtsson 57:d15ff81fbeeb 41
KlaraBengtsson 57:d15ff81fbeeb 42
KlaraBengtsson 57:d15ff81fbeeb 43 while(1) {
KlaraBengtsson 57:d15ff81fbeeb 44 if(samplingIsDone()){
KlaraBengtsson 57:d15ff81fbeeb 45 arm_cfft_f32(S,samples,0,1);
KlaraBengtsson 57:d15ff81fbeeb 46 arm_cmplx_mag_f32(samples,magnitudes,FFT_SIZE);
KlaraBengtsson 57:d15ff81fbeeb 47 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 48 }
KlaraBengtsson 57:d15ff81fbeeb 49
NicklasNp 38:0eceb5feddc4 50 }