Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-dsp
Fork of mbed-os-example-blinky by
main.cpp@63:f2972bba6f01, 2017-04-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |