Ura

Dependencies:   CMSIS_DSP_401 mbed

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();
         }
     }