es una versión mejorada que no requiere suiche y da mas informacion
Fork of CAPTURAS_IRDA by
main.cpp@1:69f833c768c8, 2017-03-18 (annotated)
- Committer:
- tony63
- Date:
- Sat Mar 18 07:53:22 2017 +0000
- Revision:
- 1:69f833c768c8
- Parent:
- 0:86c0c1652dd4
- Child:
- 2:d189b5862909
se agrego una rutina que transforma el binario en un c?digo decimal pero la cifra desborda esa es la causa de el valor negativo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony63 | 0:86c0c1652dd4 | 1 | #include "mbed.h" |
tony63 | 0:86c0c1652dd4 | 2 | #include <Pulse1.h> |
tony63 | 0:86c0c1652dd4 | 3 | PulseInOut irda(PTD5);// en este puerto se pone el sensor infrarrojo |
tony63 | 0:86c0c1652dd4 | 4 | |
tony63 | 0:86c0c1652dd4 | 5 | Serial pc(USBTX, USBRX); |
tony63 | 0:86c0c1652dd4 | 6 | DigitalOut led(LED1); |
tony63 | 0:86c0c1652dd4 | 7 | DigitalOut led2(LED2); |
tony63 | 0:86c0c1652dd4 | 8 | DigitalIn mode(PTD0); |
tony63 | 1:69f833c768c8 | 9 | int numN[35];//cadena para almacenar todos los tiempos que conforman los bits de datos |
tony63 | 1:69f833c768c8 | 10 | int numP[35];//cadena para almacenar todos los tiempos que conforman los bits de datos |
tony63 | 1:69f833c768c8 | 11 | int bin[35];//cadena para almacenar todos los tiempos que conforman los bits de datos |
tony63 | 0:86c0c1652dd4 | 12 | int dato; // tiempo de cada dato que se lee |
tony63 | 0:86c0c1652dd4 | 13 | int pul_low; |
tony63 | 0:86c0c1652dd4 | 14 | int i,j,k,header,proL,proH; |
tony63 | 1:69f833c768c8 | 15 | int r; |
tony63 | 1:69f833c768c8 | 16 | int code; |
tony63 | 0:86c0c1652dd4 | 17 | int main(){ |
tony63 | 1:69f833c768c8 | 18 | |
tony63 | 0:86c0c1652dd4 | 19 | fflush( stdin ); |
tony63 | 0:86c0c1652dd4 | 20 | lop1: header = irda.read_low_us(); |
tony63 | 0:86c0c1652dd4 | 21 | if(header>8000) goto seguir; |
tony63 | 0:86c0c1652dd4 | 22 | goto lop1; |
tony63 | 0:86c0c1652dd4 | 23 | seguir: |
tony63 | 0:86c0c1652dd4 | 24 | for(i=0;i<35;++i){ |
tony63 | 0:86c0c1652dd4 | 25 | if(mode){ |
tony63 | 0:86c0c1652dd4 | 26 | numN[i] = irda.read_low_us(); //funcion para leer un pulso de caida o bajo en header |
tony63 | 0:86c0c1652dd4 | 27 | } |
tony63 | 0:86c0c1652dd4 | 28 | if(!mode){ |
tony63 | 0:86c0c1652dd4 | 29 | numP[i] = irda.read_high_us(); //funcion para leer un pulso de caida o bajo en header |
tony63 | 0:86c0c1652dd4 | 30 | } |
tony63 | 0:86c0c1652dd4 | 31 | //funcion para leer un pulso de caida o bajo en header |
tony63 | 0:86c0c1652dd4 | 32 | } |
tony63 | 0:86c0c1652dd4 | 33 | |
tony63 | 0:86c0c1652dd4 | 34 | pc.printf("Header=%d \n",header," uS"); |
tony63 | 0:86c0c1652dd4 | 35 | for(i=0;i<36;++i){ |
tony63 | 0:86c0c1652dd4 | 36 | pc.printf(",%d, %d, %d \n",numN[i],i,numP[i]); |
tony63 | 0:86c0c1652dd4 | 37 | |
tony63 | 0:86c0c1652dd4 | 38 | if(numN[i]>8000){ |
tony63 | 0:86c0c1652dd4 | 39 | pc.printf("\n"); |
tony63 | 0:86c0c1652dd4 | 40 | pc.printf("espacios=%d\n",i); |
tony63 | 0:86c0c1652dd4 | 41 | k=i; |
tony63 | 0:86c0c1652dd4 | 42 | proL=0; |
tony63 | 0:86c0c1652dd4 | 43 | for(i=0;i<k;++i){ |
tony63 | 0:86c0c1652dd4 | 44 | proL=proL+numN[i]; |
tony63 | 0:86c0c1652dd4 | 45 | } |
tony63 | 0:86c0c1652dd4 | 46 | proL=proL/k; |
tony63 | 0:86c0c1652dd4 | 47 | pc.printf("promedio_E=%d\n",proL); |
tony63 | 0:86c0c1652dd4 | 48 | wait(3); |
tony63 | 0:86c0c1652dd4 | 49 | pc.printf("\n"); |
tony63 | 0:86c0c1652dd4 | 50 | |
tony63 | 0:86c0c1652dd4 | 51 | if(!mode){ |
tony63 | 0:86c0c1652dd4 | 52 | for(i=0;i<k-1;++i){ |
tony63 | 0:86c0c1652dd4 | 53 | if(numP[i]>(2*proL)){ |
tony63 | 1:69f833c768c8 | 54 | bin[i]=1; |
tony63 | 1:69f833c768c8 | 55 | for(j=0;j<i+1;++j){bin[i]=bin[i]*2;} |
tony63 | 1:69f833c768c8 | 56 | //pc.printf("%d-",bin[i]); |
tony63 | 0:86c0c1652dd4 | 57 | } |
tony63 | 0:86c0c1652dd4 | 58 | if(numP[i]<(2*proL)){ |
tony63 | 1:69f833c768c8 | 59 | bin[i]=0; |
tony63 | 1:69f833c768c8 | 60 | //pc.printf("%d-",bin[i]); |
tony63 | 0:86c0c1652dd4 | 61 | } |
tony63 | 0:86c0c1652dd4 | 62 | } |
tony63 | 0:86c0c1652dd4 | 63 | } |
tony63 | 1:69f833c768c8 | 64 | for(i=0;i<k-1;++i){code=code+bin[i];} |
tony63 | 1:69f833c768c8 | 65 | pc.printf("\n"); |
tony63 | 1:69f833c768c8 | 66 | pc.printf("code=%d",code); |
tony63 | 1:69f833c768c8 | 67 | code=0; |
tony63 | 0:86c0c1652dd4 | 68 | goto lop1; |
tony63 | 0:86c0c1652dd4 | 69 | |
tony63 | 0:86c0c1652dd4 | 70 | } |
tony63 | 0:86c0c1652dd4 | 71 | } |
tony63 | 0:86c0c1652dd4 | 72 | } |
tony63 | 0:86c0c1652dd4 | 73 | |
tony63 | 1:69f833c768c8 | 74 | //for(j=0;j<i;++j) |