Dependencies:   mbed

Revision:
1:649db63e7a69
Parent:
0:a08977d798ae
Child:
2:de5c54621d59
--- a/main.cpp	Fri Nov 08 11:41:41 2019 +0000
+++ b/main.cpp	Fri Nov 08 12:00:30 2019 +0000
@@ -1,49 +1,49 @@
 #include "mbed.h"
 #define bufferLength 500
 #define constante 5.035400390625e-5
-//struct eResultados {
-//    float Vrms;
-//    float Vmax;
-//    float Vmin;
-//};
+struct eResult {
+    float Vrms;
+    float Vmax;
+    float Vmin;
+};
 
 AnalogIn    adc_in(A0);
 AnalogOut   dac_out(A2);
-Ticker tMuestrea;
-//Ticker tVisualiza;
+Ticker tMuestr;
+  Ticker tVis;
 
-void visualiza();
-void procesarDatos(uint16_t *entrada, uint16_t *salida, int longitud);
+void vis();
+void procDat(uint16_t *ent, uint16_t *sal, int longi);
 
 int flag=0;
 int contador=0;
 
 struct buffers {
-    uint16_t A[bufferLength];
-    uint16_t B[bufferLength];
+    uint16_t A[bufferLeng];
+    uint16_t B[bufferLeng];
 };
 
-bool bufferActivo=0;
-void muestrea();
+bool bufferAct=0;
+void muestr();
 
-buffers bufferEntrada;
-buffers bufferSalida;
+buffers bufferEnt;
+buffers bufferSal;
 
-//eResultados resultados;
+eResult result;
 
 int main()
 {
 
-    tMuestrea.attach_us(&muestrea, 100);
-//    tVisualiza.attach(&visualiza, 5);
+    tMuestr.attach_us(&muestr, 100);
+      tVis.attach(&vis, 5);
 
     while(1) {
         if (flag) {
             flag=0;
-            if(bufferActivo) {
-                procesarDatos(bufferSalida.B, bufferEntrada.A,bufferLength);
+            if(bufferAct) {
+                procDat(bufferSal.B, bufferEnt.A,bufferLeng);
             } else {
-                procesarDatos(bufferSalida.A,bufferEntrada.B,bufferLength);
+                procDat(bufferSal.A,bufferEnt.B,bufferLeng);
             }
 
             wait_us(1);
@@ -51,52 +51,52 @@
         }
     }
 }
-void muestrea()
+void muestr()
 {
     uint16_t dato=adc_in.read_u16();
-    if (bufferActivo) {
-        bufferEntrada.A[contador]=dato;
-        dato=bufferSalida.B[contador];
+    if (bufferAct) {
+        bufferEnt.A[contador]=dato;
+        dato=bufferSal.B[contador];
     } else {
-        bufferEntrada.B[contador]=dato;
-        dato=bufferSalida.A[contador];
+        bufferEnt.B[contador]=dato;
+        dato=bufferSal.A[contador];
     }
     dac_out.write_u16(dato);
     contador++;
-    if (contador==bufferLength) {
-        bufferActivo=!bufferActivo;
+    if (contador==bufferLeng) {
+        bufferAct=!bufferAct;
         contador=0;
         flag=1;
     }
 }
 
 
-void procesarDatos(uint16_t *salida, uint16_t *entrada, int longitud)
+void procDat(uint16_t *sal, uint16_t *ent, int longi)
 {
-//    uint16_t max=0;
-//    uint16_t min=65535;
+      uint16_t max=0;
+      uint16_t min=65535;
     uint16_t dato;
-//    uint64_t sumatorio=0;
-    for(int i=0; i<longitud; i++) {
-        dato=entrada[i];
-//        sumatorio+= dato*dato;
-        salida[i]=dato;
-//        if(dato>max) {
-//            max=dato;
-//        }
-//        if(dato<min) {
-//            min=dato;
-//        }
+      uint64_t sumatorio=0;
+    for(int i=0; i<longi; i++) {
+        dato=ent[i];
+          sumatorio+= dato*dato;
+        sal[i]=dato;
+          if(dato>max) {
+              max=dato;
+          }
+          if(dato<min) {
+              min=dato;
+          }
 
     }
-//    resultados.Vrms= constante*sqrt(((float)sumatorio)/longitud);
-//    resultados.Vmax=max*constante;
-//    resultados.Vmin=min*constante;
+      result.Vrms= constante*sqrt(((float)sumatorio)/longi);
+      result.Vmax=max*constante;
+      result.Vmin=min*constante;
 }
-//void visualiza()
-//{
-//    printf ("El valor maxima es %f\n",resultados.Vmax);
-//    printf ("El valor minimo es %f\n",resultados.Vmin);
-//    printf ("El valor RMS es %f\n\n",resultados.Vrms);
+  void vis()
+  {
+      printf ("El valor maxima es %f\n",result.Vmax);
+      printf ("El valor minimo es %f\n",result.Vmin);
+      printf ("El valor RMS es %f\n\n",result.Vrms);
 
-//}
+  }