ddd

Dependencies:   mbed CMSIS_DSP_5

Revision:
9:6fcbc011ef60
Parent:
8:99642487de6f
Child:
10:d475a24f4530
--- a/main.cpp	Thu Oct 17 21:12:26 2019 +0000
+++ b/main.cpp	Thu Dec 09 19:50:42 2021 +0000
@@ -52,11 +52,71 @@
 
 float calcularRMS(int16_t *datos, int longitud)
 {
-    return 0.0;
+  float sumatorio;
+   
+   const float constante =6.6/65536.0*6.6/65536.0;
+   int16_t dato;
+   int64_t sum = 0;
+   int32_t mult;
+   
+
+   
+   for (int n = 0; n<longitud;n++){
+       dato = datos[n];
+       mult=dato*dato;
+       sum+=mult; 
+        }
+        
+        sumatorio = sum*constante/longitud;
+        return sqrt(sumatorio);
+    
 }
 
 void calcularDatos(int16_t *datosV, int16_t *datosI, int longitud, estructuraMedidas *medidas)
 {
     
+    float sumatorio2 = 0.0;
+
+   
+   
+   for (int n = 0; n<longitud;n++){
+       sumatorio2 = sumatorio2 + (datosI[n]*6.6/65536.0)*(datosI[n]*6.6/65536.0);
+        }
+        sumatorio2 = sumatorio2/longitud;
+        (*medidas).irms = sqrt(sumatorio2);
+
+        
+          float sumatorio3 = 0.0;
+   
+   
+   
+   for (int n = 0; n<longitud;n++){
+       sumatorio3 = sumatorio3 + (datosV[n]*6.6/65536.0)*(datosV[n]*6.6/65536.0);
+        }
+        sumatorio3 = sumatorio3/longitud;
+        (*medidas).vrms = sqrt(sumatorio3);
+
+        
+        float sumatorio4 = 0.0;
+        
+        sumatorio4 = sqrt(sumatorio2)*sqrt(sumatorio3);
+        (*medidas).potenciaAparente = sumatorio4;
+        
+        
+        
+        
+        
+        (*medidas).potenciaActiva = sumatorio2*sumatorio3;
+        
+  
+        
+        (*medidas).potenciaReactiva = sqrt((sumatorio4)*(sumatorio4))-((sumatorio2*sumatorio3)*(sumatorio2*sumatorio3));
+        
+        (*medidas).factorDePotencia = (sumatorio2*sumatorio3)/sumatorio4;
+        
+        
+        
+        
+        
 }