Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed FRDM-KL46Z_ECG
main.cpp@3:3213a5e5113c, 2020-12-05 (annotated)
- Committer:
- JulioDLuna
- Date:
- Sat Dec 05 23:19:10 2020 +0000
- Revision:
- 3:3213a5e5113c
- Parent:
- 2:eec312c759e1
- Child:
- 4:fde3fe13c27b
CodigoCamacho
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JulioDLuna | 0:b01880678216 | 1 | #include "mbed.h" |
JulioDLuna | 0:b01880678216 | 2 | #include "Senales.h" |
JulioDLuna | 0:b01880678216 | 3 | #include "Serial.h" |
JulioDLuna | 0:b01880678216 | 4 | Serial pc_serial(USBTX, USBRX); |
JulioDLuna | 0:b01880678216 | 5 | int c=0; |
rodrigocamacho02 | 2:eec312c759e1 | 6 | float m=0; |
JulioDLuna | 0:b01880678216 | 7 | int G=0; |
rodrigocamacho02 | 2:eec312c759e1 | 8 | int qrs=0; |
rodrigocamacho02 | 2:eec312c759e1 | 9 | int cont=0; |
rodrigocamacho02 | 2:eec312c759e1 | 10 | int escala=0; |
JulioDLuna | 0:b01880678216 | 11 | float valor[]={}; |
JulioDLuna | 0:b01880678216 | 12 | float valoraux[]={}; |
JulioDLuna | 3:3213a5e5113c | 13 | float y[2799]={0}; |
JulioDLuna | 0:b01880678216 | 14 | float E=0.0; |
JulioDLuna | 0:b01880678216 | 15 | float Pico=0.0; |
JulioDLuna | 0:b01880678216 | 16 | float Vmax=0.0; |
JulioDLuna | 0:b01880678216 | 17 | float Vmin=0.0; |
JulioDLuna | 0:b01880678216 | 18 | float Vmaxaux=0.0; |
JulioDLuna | 0:b01880678216 | 19 | float Vminaux=0.0; |
JulioDLuna | 0:b01880678216 | 20 | float maxRP=0.0; |
JulioDLuna | 0:b01880678216 | 21 | void Monitorea(); |
JulioDLuna | 0:b01880678216 | 22 | void Controla(); |
rodrigocamacho02 | 2:eec312c759e1 | 23 | void Pantalla(); |
JulioDLuna | 0:b01880678216 | 24 | |
JulioDLuna | 0:b01880678216 | 25 | |
JulioDLuna | 0:b01880678216 | 26 | int main(){ |
JulioDLuna | 0:b01880678216 | 27 | pc_serial.baud(9600); |
JulioDLuna | 3:3213a5e5113c | 28 | m=1; |
JulioDLuna | 0:b01880678216 | 29 | Controla(); |
rodrigocamacho02 | 2:eec312c759e1 | 30 | Monitorea(); |
JulioDLuna | 0:b01880678216 | 31 | } |
JulioDLuna | 0:b01880678216 | 32 | |
JulioDLuna | 0:b01880678216 | 33 | |
JulioDLuna | 0:b01880678216 | 34 | void Monitorea(){ |
rodrigocamacho02 | 2:eec312c759e1 | 35 | c=1; |
rodrigocamacho02 | 2:eec312c759e1 | 36 | do{ |
rodrigocamacho02 | 2:eec312c759e1 | 37 | //y[c]=abs(NormalUno[c+1]-NormalUno[c-1]); |
rodrigocamacho02 | 2:eec312c759e1 | 38 | //y[c]=abs(VoltajeBradicardia[c+1]-VoltajeBradicardia[c-1]); |
JulioDLuna | 3:3213a5e5113c | 39 | //y[c]=abs(VoltajeTaquicardia[c+1]-VoltajeTaquicardia[c-1]); |
JulioDLuna | 3:3213a5e5113c | 40 | y[c]=abs(Bradicardia6s[c+1]-Bradicardia6s[c-1]); |
JulioDLuna | 3:3213a5e5113c | 41 | //pc_serial.printf("y:%f muestra:%d\r\n",y[c],c); |
JulioDLuna | 3:3213a5e5113c | 42 | if(y[c]>0.2*m){ |
rodrigocamacho02 | 2:eec312c759e1 | 43 | cont++; |
rodrigocamacho02 | 2:eec312c759e1 | 44 | if(cont>=4){ |
rodrigocamacho02 | 2:eec312c759e1 | 45 | qrs++; |
rodrigocamacho02 | 2:eec312c759e1 | 46 | } |
rodrigocamacho02 | 2:eec312c759e1 | 47 | } |
rodrigocamacho02 | 2:eec312c759e1 | 48 | else{ |
rodrigocamacho02 | 2:eec312c759e1 | 49 | cont=0; |
rodrigocamacho02 | 2:eec312c759e1 | 50 | } |
rodrigocamacho02 | 2:eec312c759e1 | 51 | c=c+1; |
JulioDLuna | 3:3213a5e5113c | 52 | }while(c<2799); |
rodrigocamacho02 | 2:eec312c759e1 | 53 | pc_serial.printf("QRS:%d\r\n",qrs); |
JulioDLuna | 0:b01880678216 | 54 | } |
JulioDLuna | 0:b01880678216 | 55 | |
JulioDLuna | 0:b01880678216 | 56 | void Controla(){ |
JulioDLuna | 0:b01880678216 | 57 | do{ |
rodrigocamacho02 | 2:eec312c759e1 | 58 | /*NormalUno[c]=(NormalUno[c]-1.65)*m; |
JulioDLuna | 0:b01880678216 | 59 | Vmaxaux=NormalUno[c]-Vmax; |
JulioDLuna | 0:b01880678216 | 60 | Vminaux=NormalUno[c]-Vmin; |
JulioDLuna | 0:b01880678216 | 61 | if(Vmaxaux>0){Vmax=NormalUno[c];} |
rodrigocamacho02 | 2:eec312c759e1 | 62 | if(Vminaux<0){Vmin=NormalUno[c];}*/ |
rodrigocamacho02 | 2:eec312c759e1 | 63 | /*VoltajeBradicardia[c]=(VoltajeBradicardia[c]-1.65)*m; |
rodrigocamacho02 | 2:eec312c759e1 | 64 | Vmaxaux=VoltajeBradicardia[c]-Vmax; |
rodrigocamacho02 | 2:eec312c759e1 | 65 | Vminaux=VoltajeBradicardia[c]-Vmin; |
rodrigocamacho02 | 2:eec312c759e1 | 66 | if(Vmaxaux>0){Vmax=VoltajeBradicardia[c];} |
rodrigocamacho02 | 2:eec312c759e1 | 67 | if(Vminaux<0){Vmin=VoltajeBradicardia[c];}*/ |
JulioDLuna | 3:3213a5e5113c | 68 | //VoltajeTaquicardia[c]=(VoltajeTaquicardia[c]-1.65)*m; |
JulioDLuna | 3:3213a5e5113c | 69 | //Vmaxaux=VoltajeTaquicardia[c]-Vmax; |
JulioDLuna | 3:3213a5e5113c | 70 | //Vminaux=VoltajeTaquicardia[c]-Vmin; |
JulioDLuna | 3:3213a5e5113c | 71 | //if(Vmaxaux>0){Vmax=VoltajeTaquicardia[c];} |
JulioDLuna | 3:3213a5e5113c | 72 | //if(Vminaux<0){Vmin=VoltajeTaquicardia[c];} |
JulioDLuna | 3:3213a5e5113c | 73 | Bradicardia6s[c]=(Bradicardia6s[c]-1.65)*m; |
JulioDLuna | 3:3213a5e5113c | 74 | Vmaxaux=Bradicardia6s[c]-Vmax; |
JulioDLuna | 3:3213a5e5113c | 75 | Vminaux=Bradicardia6s[c]-Vmin; |
JulioDLuna | 3:3213a5e5113c | 76 | if(Vmaxaux>0){Vmax=Bradicardia6s[c];} |
JulioDLuna | 3:3213a5e5113c | 77 | if(Vminaux<0){Vmin=Bradicardia6s[c];} |
JulioDLuna | 0:b01880678216 | 78 | //pc_serial.printf("Vmax:%f Vmin:%f muestra:%d\r\n",Vmax,Vmin,c); |
JulioDLuna | 0:b01880678216 | 79 | c=c+1; |
JulioDLuna | 3:3213a5e5113c | 80 | }while(c<2799); |
JulioDLuna | 0:b01880678216 | 81 | //pc_serial.printf("Vmax:%f Vmin:%f\r\n",Vmax,Vmin); |
rodrigocamacho02 | 2:eec312c759e1 | 82 | Pico=abs(Vmax)-abs(Vmin); |
JulioDLuna | 0:b01880678216 | 83 | c=0; |
JulioDLuna | 0:b01880678216 | 84 | if(Pico>0){Pico=Vmax;} |
JulioDLuna | 0:b01880678216 | 85 | if(Pico<0){Pico=abs(Vmin);} |
rodrigocamacho02 | 2:eec312c759e1 | 86 | if(0<=Pico&&Pico<=0.424){maxRP=0.424;} |
rodrigocamacho02 | 2:eec312c759e1 | 87 | if(0.425<=Pico&&Pico<=0.824){maxRP=0.824;} |
rodrigocamacho02 | 2:eec312c759e1 | 88 | if(0.825<=Pico&&Pico<=1.65){maxRP=1.65;} |
JulioDLuna | 0:b01880678216 | 89 | |
JulioDLuna | 0:b01880678216 | 90 | E=1.65-maxRP; |
rodrigocamacho02 | 2:eec312c759e1 | 91 | if(1<=E&&E<=1.3){G=4; escala=20;} |
rodrigocamacho02 | 2:eec312c759e1 | 92 | if(0.7<=E&&E<=0.9){G=2; escala=10;} |
rodrigocamacho02 | 2:eec312c759e1 | 93 | if(0<=E&&E<=0.1){G=1;escala=5;} |
rodrigocamacho02 | 2:eec312c759e1 | 94 | pc_serial.printf("Pico:%f maxRP:%f E:%f G:%d escala:%d mm/mV\r\n",Pico,maxRP,E,G,escala); |
JulioDLuna | 3:3213a5e5113c | 95 | do{ |
JulioDLuna | 3:3213a5e5113c | 96 | Bradicardia6s[c]=(Bradicardia6s[c]*G)+1.65; |
JulioDLuna | 3:3213a5e5113c | 97 | c=c+1; |
JulioDLuna | 3:3213a5e5113c | 98 | }while(c<2799); |
rodrigocamacho02 | 2:eec312c759e1 | 99 | } |
rodrigocamacho02 | 2:eec312c759e1 | 100 | |
rodrigocamacho02 | 2:eec312c759e1 | 101 | void Pantalla(){ |
JulioDLuna | 3:3213a5e5113c | 102 | /*do{ |
JulioDLuna | 0:b01880678216 | 103 | NormalUno[c]=(NormalUno[c]*G)+1.65; |
JulioDLuna | 0:b01880678216 | 104 | //pc_serial.printf("Vsal:%f muestra:%d\r\n",NormalUno[c],c); |
JulioDLuna | 0:b01880678216 | 105 | pc_serial.printf("%f \r\n",NormalUno[c]); |
JulioDLuna | 0:b01880678216 | 106 | c=c+1; |
JulioDLuna | 3:3213a5e5113c | 107 | }while(c<2799);*/ |
rodrigocamacho02 | 2:eec312c759e1 | 108 | } |
JulioDLuna | 0:b01880678216 | 109 |