CamachoLuna / Mbed 2 deprecated FRDM-KL46Z_ECG1_2

Dependencies:   mbed FRDM-KL46Z_ECG

Revision:
4:fde3fe13c27b
Parent:
3:3213a5e5113c
Child:
5:43a7c05b02cd
--- a/main.cpp	Sat Dec 05 23:19:10 2020 +0000
+++ b/main.cpp	Sun Dec 06 02:48:59 2020 +0000
@@ -3,6 +3,9 @@
 #include "Serial.h"
 Serial pc_serial(USBTX, USBRX);
 int c=0;
+int frec=0;
+bool flag1=0;
+bool flag2=0;
 float m=0;
 int G=0;
 int qrs=0;
@@ -13,6 +16,7 @@
 float y[2799]={0};
 float E=0.0;
 float Pico=0.0;
+float Pico50=0.0;
 float Vmax=0.0;
 float Vmin=0.0;
 float Vmaxaux=0.0;
@@ -30,46 +34,8 @@
     Monitorea();
 }
 
-
-void Monitorea(){
-    c=1;
-    do{ 
-        //y[c]=abs(NormalUno[c+1]-NormalUno[c-1]);
-        //y[c]=abs(VoltajeBradicardia[c+1]-VoltajeBradicardia[c-1]);
-        //y[c]=abs(VoltajeTaquicardia[c+1]-VoltajeTaquicardia[c-1]);
-        y[c]=abs(Bradicardia6s[c+1]-Bradicardia6s[c-1]);
-        //pc_serial.printf("y:%f  muestra:%d\r\n",y[c],c);
-        if(y[c]>0.2*m){
-            cont++;
-            if(cont>=4){
-                qrs++;
-                }
-            }
-        else{
-            cont=0;
-            }
-        c=c+1;
-    }while(c<2799);
-    pc_serial.printf("QRS:%d\r\n",qrs);
-}
-
 void Controla(){
     do{ 
-        /*NormalUno[c]=(NormalUno[c]-1.65)*m;
-        Vmaxaux=NormalUno[c]-Vmax;
-        Vminaux=NormalUno[c]-Vmin;
-        if(Vmaxaux>0){Vmax=NormalUno[c];}
-        if(Vminaux<0){Vmin=NormalUno[c];}*/
-        /*VoltajeBradicardia[c]=(VoltajeBradicardia[c]-1.65)*m;
-        Vmaxaux=VoltajeBradicardia[c]-Vmax;
-        Vminaux=VoltajeBradicardia[c]-Vmin;
-        if(Vmaxaux>0){Vmax=VoltajeBradicardia[c];}
-        if(Vminaux<0){Vmin=VoltajeBradicardia[c];}*/
-        //VoltajeTaquicardia[c]=(VoltajeTaquicardia[c]-1.65)*m;
-        //Vmaxaux=VoltajeTaquicardia[c]-Vmax;
-        //Vminaux=VoltajeTaquicardia[c]-Vmin;
-        //if(Vmaxaux>0){Vmax=VoltajeTaquicardia[c];}
-        //if(Vminaux<0){Vmin=VoltajeTaquicardia[c];}
         Bradicardia6s[c]=(Bradicardia6s[c]-1.65)*m;
         Vmaxaux=Bradicardia6s[c]-Vmax;
         Vminaux=Bradicardia6s[c]-Vmin;
@@ -91,19 +57,36 @@
     if(1<=E&&E<=1.3){G=4; escala=20;}
     if(0.7<=E&&E<=0.9){G=2; escala=10;}
     if(0<=E&&E<=0.1){G=1;escala=5;}
-     pc_serial.printf("Pico:%f maxRP:%f E:%f G:%d escala:%d mm/mV\r\n",Pico,maxRP,E,G,escala);
-     do{
+     pc_serial.printf("G:%d escala:%d mm/mV\r\n",G,escala);
+     /*do{
      Bradicardia6s[c]=(Bradicardia6s[c]*G)+1.65;
      c=c+1;
-     }while(c<2799);
+     }while(c<2799);*/
+}
+
+void Monitorea(){
+    c=0;
+    Pico50=Pico*0.5;
+    do{
+        y[c]=abs(Bradicardia6s[c]);
+        if(y[c]>Pico50){flag1=1;}
+        if(flag1==1&&y[c]<Pico50){flag2=1;}
+        if(flag1==1&&flag2==1){qrs=qrs+1;flag1=0;flag2=0;}
+        c=c+1;
+    }while(c<2799);
+    frec=qrs*10;
+    pc_serial.printf("QRS:%d f: %d\r\n",qrs,frec);
+    if(frec>=60&&frec<=100){pc_serial.printf("LED Verde Normal\r\n");}
+    if(frec>50&&frec<60){pc_serial.printf("LED Amarillo Posible Bradicardia!\r\n");}
+    if(frec>100&&frec<110){pc_serial.printf("LED Amarillo Posible Taquicardia!\r\n");}
+    if(frec<=50){pc_serial.printf("LED Rojo  Bradicardia!\r\n");}
+    if(frec>=110){pc_serial.printf("LED Rojo  Taquicardia!\r\n");}
+    
 }
 
 void Pantalla(){
     /*do{  
-     NormalUno[c]=(NormalUno[c]*G)+1.65;
-     //pc_serial.printf("Vsal:%f  muestra:%d\r\n",NormalUno[c],c);
-     pc_serial.printf("%f \r\n",NormalUno[c]);
-     c=c+1;
+    pc_serial.printf("QRS:%d f: %d\r\n",qrs,frec);
     }while(c<2799);*/
 }