Ura
Dependencies: CMSIS_DSP_401 mbed
Diff: main.cpp
- Revision:
- 7:a4cff60f035b
- Parent:
- 6:0de27f5ec409
- Child:
- 8:027ed43684af
--- a/main.cpp Tue Nov 18 17:21:07 2014 +0000 +++ b/main.cpp Tue Nov 25 17:04:32 2014 +0000 @@ -2,6 +2,13 @@ #include <ctype.h> #include "arm_math.h" #include "arm_const_structs.h" +#include "stm32f4xx_hal.h" +#include <stdio.h> + + +/* SPI handler declaration */ +SPI_HandleTypeDef SpiHandle; + void arm_cfft_f32( const arm_cfft_instance_f32 * S, @@ -10,12 +17,12 @@ uint8_t bitReverseFlag); Serial pc(USBTX, USBRX);//:D ПРИВЕТ!!!! - - AnalogIn left(A2); AnalogIn right(A3); AnalogIn center(A3); + +int flag = 0; int SAMPLE_RATE_HZ = 40000; // Sample rate of the audio in hertz. const int FFT_SIZE = 16; // Size of the FFT. @@ -69,9 +76,9 @@ int main() { - // Set up serial port. - //pc.baud (38400); - + + static uint32_t cnt1=0; + // Init arm_ccft_32 switch (FFT_SIZE) { @@ -133,41 +140,48 @@ samplingBegin(); while(1) - { + + + // Calculate FFT if a full sample is available. if (samplingIsDone()) { // Run FFT on sample data. - //arm_cfft_radix2_f32(arm_cfft_radix2_instance_f32*S, samples); arm_cfft_f32(S1, samples, 0, 1); arm_cfft_f32(S2, samples2, 0, 1); arm_cfft_f32(S3, samples3, 0, 1); - samples[0]=0; - samples2[0]=0; - samples3[0]=0; - - /* Initialize the CFFT/CIFFT module */ - //arm_cfft_radix2_init_f32(S, 128, 0, 1); - //arm_cfft_radix2_f32(S, samples); - //for(int i = 0;i < FFT_SIZE*2;++i) - // pc.printf(" Samples[%d]: %8.2f ",i,samples[i]); - //pc.printf("\r\n"); - // Calculate magnitude of complex numbers output by the FFT. + samples[0]=0; + samples2[0]=0; + samples3[0]=0; + arm_cmplx_mag_f32(samples, magnitudes, FFT_SIZE); arm_cmplx_mag_f32(samples2, magnitudes2, FFT_SIZE); arm_cmplx_mag_f32(samples3, magnitudes3, FFT_SIZE); - //for(int i = 0;i < FFT_SIZE;++i) - // pc.printf(" Magnitude: %d = %8.2f ;", i, magnitudes[i]); - //pc.printf(" \r\n"); arm_max_f32(magnitudes, FFT_SIZE, &maxValue, &testIndex); arm_max_f32(magnitudes2, FFT_SIZE, &maxValue2, &testIndex2); arm_max_f32(magnitudes3, FFT_SIZE, &maxValue3, &testIndex3); - pc.printf(" MAX value at magnitudes 1[%d] : %+8.2f\r\n", testIndex, maxValue);//Я НЯШКА А АНЯ ВЛАСЮК КОЗА:DDDDDDDDDDDDD - pc.printf(" MAX value at magnitudes 2[%d] : %+8.2f\r\n", testIndex2, maxValue2); - pc.printf(" MAX value at magnitudes 3[%d] : %+8.2f\r\n", testIndex2, maxValue3); - // Wait for user confirmation to restart audio sampling. - //pc.getc(); + + { + if (HAL_GetTick() > (cnt1 + 1000)) + { + cnt1=HAL_GetTick(); + if (flag==0){ + pc.printf(" MAX value at magnitudes 1[%d] : %+8.2f\r\n", testIndex, maxValue);//Я НЯШКА А АНЯ ВЛАСЮК КОЗА:DDDDDDDDDDDDD + pc.printf(" MAX value at magnitudes 2[%d] : %+8.2f\r\n", testIndex2, maxValue2); + pc.printf(" MAX value at magnitudes 3[%d] : %+8.2f\r\n", testIndex2, maxValue3); + flag++; + } + else if (flag==1){ + + flag++; + } + else if (flag==2){ + + flag=0; + } + } + double delta_t = 0; if ((testIndex < testIndex2) and (testIndex < testIndex3) and (testIndex2 < testIndex3)) @@ -183,9 +197,29 @@ else delta_t = (testIndex - testIndex2)*0.000025; double fi = asin(330*delta_t/0.33); - pc.printf(" Angle is : %+8.2f\r\n", fi); + - wait(1); + if (HAL_GetTick() > (cnt1 + 1000)) + { + cnt1=HAL_GetTick(); + if (flag==0){ + pc.printf(" MAX value at magnitudes 1[%d] : %+8.2f\r\n", testIndex, maxValue);//Я НЯШКА А АНЯ ВЛАСЮК КОЗА:DDDDDDDDDDDDD + pc.printf(" MAX value at magnitudes 2[%d] : %+8.2f\r\n", testIndex2, maxValue2); + pc.printf(" MAX value at magnitudes 3[%d] : %+8.2f\r\n", testIndex2, maxValue3); + pc.printf(" Angle is : %+8.2f\r\n", fi); + flag++; + } + else if (flag==1){ + + flag++; + } + else if (flag==2){ + + flag=0; + } + } + + samplingBegin(); } }