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:27:17 2017 +0000
Revision:
62:1e5508bb8f16
Parent:
61:35a973447ae6
Child:
63:f2972bba6f01
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
deeza 59:2cd4e73320cb 26 //skriv hårdvaru kod här
deeza 55:360b5bcdf9a7 27 }
deeza 55:360b5bcdf9a7 28
deeza 54:fd99c80c68da 29 bool samplingIsDone() {
deeza 59:2cd4e73320cb 30 return (sampleCounter >= FFT_SIZE*2);
deeza 54:fd99c80c68da 31 }
deeza 54:fd99c80c68da 32
Jonathan Austin 1:846c97078558 33 // main() runs in its own thread in the OS
KlaraBengtsson 57:d15ff81fbeeb 34 int main() {
KlaraBengtsson 57:d15ff81fbeeb 35
KlaraBengtsson 57:d15ff81fbeeb 36 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 37
deeza 59:2cd4e73320cb 38 S = & arm_cfft_sR_f32_len32;
KlaraBengtsson 57:d15ff81fbeeb 39
KlaraBengtsson 57:d15ff81fbeeb 40
KlaraBengtsson 57:d15ff81fbeeb 41
KlaraBengtsson 57:d15ff81fbeeb 42 while(1) {
KlaraBengtsson 57:d15ff81fbeeb 43 if(samplingIsDone()){
KlaraBengtsson 57:d15ff81fbeeb 44 arm_cfft_f32(S,samples,0,1);
KlaraBengtsson 57:d15ff81fbeeb 45 arm_cmplx_mag_f32(samples,magnitudes,FFT_SIZE);
KlaraBengtsson 57:d15ff81fbeeb 46 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 47 }
KlaraBengtsson 57:d15ff81fbeeb 48
NicklasNp 38:0eceb5feddc4 49 }