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@67:8de1eb1c4974, 2017-04-10 (annotated)
- Committer:
- KlaraBengtsson
- Date:
- Mon Apr 10 14:44:03 2017 +0000
- Revision:
- 67:8de1eb1c4974
- Parent:
- 66:866bf1606317
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" |
KlaraBengtsson | 67:8de1eb1c4974 | 4 | #include "mbed-dsp.h" |
deeza | 44:7f2c1e8d0761 | 5 | |
KlaraBengtsson | 66:866bf1606317 | 6 | |
KlaraBengtsson | 67:8de1eb1c4974 | 7 | q31_t testData1[] = {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}; |
KlaraBengtsson | 67:8de1eb1c4974 | 8 | q31_t testData2[] = {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}; |
KlaraBengtsson | 67:8de1eb1c4974 | 9 | q31_t finalData[]; |
KlaraBengtsson | 66:866bf1606317 | 10 | int len1 = length(testData1); |
KlaraBengtsson | 66:866bf1606317 | 11 | int len2 = length(testData2); |
KlaraBengtsson | 67:8de1eb1c4974 | 12 | q31_t *p1 = &testData1(0); |
KlaraBengtsson | 67:8de1eb1c4974 | 13 | q31_t *p2 = &testData2(0); |
KlaraBengtsson | 67:8de1eb1c4974 | 14 | q31_t *p3 = &finalData(0); |
KlaraBengtsson | 67:8de1eb1c4974 | 15 | |
KlaraBengtsson | 66:866bf1606317 | 16 | |
KlaraBengtsson | 67:8de1eb1c4974 | 17 | int main(){ |
KlaraBengtsson | 66:866bf1606317 | 18 | |
KlaraBengtsson | 67:8de1eb1c4974 | 19 | arm_correlate_q31(pi,len1,p2,len2,p3); |
KlaraBengtsson | 67:8de1eb1c4974 | 20 | } |
KlaraBengtsson | 66:866bf1606317 | 21 | |
KlaraBengtsson | 66:866bf1606317 | 22 | /* |
deeza | 55:360b5bcdf9a7 | 23 | const int FFT_SIZE = 32; |
deeza | 55:360b5bcdf9a7 | 24 | int sampleCounter; |
KlaraBengtsson | 58:afa7b146b6bf | 25 | float samples[FFT_SIZE*2]; |
KlaraBengtsson | 58:afa7b146b6bf | 26 | float magnitudes[FFT_SIZE]; |
KlaraBengtsson | 64:92745a08320c | 27 | const static arm_cfft_instance_f32 *S; |
KlaraBengtsson | 64:92745a08320c | 28 | |
deeza | 59:2cd4e73320cb | 29 | //int SAMPLE_RATE_HZ = 10000; |
deeza | 59:2cd4e73320cb | 30 | |
KlaraBengtsson | 62:1e5508bb8f16 | 31 | 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 | 32 | |
deeza | 54:fd99c80c68da | 33 | void samplingBegin(){ |
deeza | 55:360b5bcdf9a7 | 34 | sampleCounter = 0; |
deeza | 59:2cd4e73320cb | 35 | //sätt hårdvaru inställningar här om det behövs |
deeza | 54:fd99c80c68da | 36 | } |
deeza | 54:fd99c80c68da | 37 | |
deeza | 55:360b5bcdf9a7 | 38 | void samplingCallback() { |
deeza | 59:2cd4e73320cb | 39 | //läs data |
deeza | 60:a83a5a34050b | 40 | samples[sampleCounter] = testData[sampleCounter]; |
deeza | 55:360b5bcdf9a7 | 41 | // sätter imaginär till 0 |
deeza | 55:360b5bcdf9a7 | 42 | samples[sampleCounter + 1] = 0.0; |
deeza | 55:360b5bcdf9a7 | 43 | sampleCounter += 2; |
deeza | 55:360b5bcdf9a7 | 44 | if (sampleCounter >= FFT_SIZE *2 ) { |
deeza | 55:360b5bcdf9a7 | 45 | //här är sampling klar, buffert är full |
KlaraBengtsson | 63:f2972bba6f01 | 46 | //skriv hårdvaru kod här |
KlaraBengtsson | 63:f2972bba6f01 | 47 | } |
deeza | 55:360b5bcdf9a7 | 48 | } |
deeza | 55:360b5bcdf9a7 | 49 | |
deeza | 54:fd99c80c68da | 50 | bool samplingIsDone() { |
deeza | 59:2cd4e73320cb | 51 | return (sampleCounter >= FFT_SIZE*2); |
deeza | 54:fd99c80c68da | 52 | } |
deeza | 54:fd99c80c68da | 53 | |
Jonathan Austin |
1:846c97078558 | 54 | // main() runs in its own thread in the OS |
KlaraBengtsson | 57:d15ff81fbeeb | 55 | int main() { |
KlaraBengtsson | 57:d15ff81fbeeb | 56 | |
KlaraBengtsson | 64:92745a08320c | 57 | samplingBegin(); |
KlaraBengtsson | 57:d15ff81fbeeb | 58 | |
KlaraBengtsson | 64:92745a08320c | 59 | S = & arm_cfft_sR_f32_len32; |
KlaraBengtsson | 57:d15ff81fbeeb | 60 | |
KlaraBengtsson | 57:d15ff81fbeeb | 61 | |
KlaraBengtsson | 57:d15ff81fbeeb | 62 | |
KlaraBengtsson | 64:92745a08320c | 63 | while(1) { |
KlaraBengtsson | 64:92745a08320c | 64 | if(samplingIsDone()){ |
KlaraBengtsson | 64:92745a08320c | 65 | arm_cfft_f32(S,samples,0,1); |
KlaraBengtsson | 64:92745a08320c | 66 | arm_cmplx_mag_f32(samples,magnitudes,FFT_SIZE); |
KlaraBengtsson | 64:92745a08320c | 67 | samplingBegin(); |
KlaraBengtsson | 64:92745a08320c | 68 | } |
KlaraBengtsson | 64:92745a08320c | 69 | |
KlaraBengtsson | 57:d15ff81fbeeb | 70 | } |
KlaraBengtsson | 66:866bf1606317 | 71 | } |
KlaraBengtsson | 66:866bf1606317 | 72 | */ |