es una versión mejorada que no requiere suiche y da mas informacion
Fork of CAPTURAS_IRDA by
Diff: main.cpp
- Revision:
- 2:d189b5862909
- Parent:
- 1:69f833c768c8
- Child:
- 3:0e1e959c2f4f
--- a/main.cpp Sat Mar 18 07:53:22 2017 +0000 +++ b/main.cpp Fri Mar 24 08:29:48 2017 +0000 @@ -1,11 +1,13 @@ +//ESTA VERSION PROPORCIONA EL VECTOR DE LA TECLA PULSADA EN EL SEGUNDO MODO O CON EL SUICHE EN BAJO +//PARA MANDOS DE 31 BITS QUe EN CASO DE SER INCOSTISTENTES SE PUEDEN MODIFICAR +//entrega las dos cabeceras alta y baja segun el modo #include "mbed.h" #include <Pulse1.h> PulseInOut irda(PTD5);// en este puerto se pone el sensor infrarrojo Serial pc(USBTX, USBRX); -DigitalOut led(LED1); +DigitalOut led1(LED1); DigitalOut led2(LED2); -DigitalIn mode(PTD0); int numN[35];//cadena para almacenar todos los tiempos que conforman los bits de datos int numP[35];//cadena para almacenar todos los tiempos que conforman los bits de datos int bin[35];//cadena para almacenar todos los tiempos que conforman los bits de datos @@ -13,62 +15,66 @@ int pul_low; int i,j,k,header,proL,proH; int r; -int code; +int mode=1; +int code; +int numb=32; int main(){ - +pc.printf("\n"); +pc.printf("este codigo es para 32 bits de datos"); +pc.printf("\n"); +pc.printf("pise reset para otro codigo"); +pc.printf("\n"); fflush( stdin ); -lop1: header = irda.read_low_us(); - if(header>8000) goto seguir; +lop1: if(mode){ + header = irda.read_low_us(); + if(header>8000) goto seguir1; goto lop1; -seguir: - for(i=0;i<35;++i){ - if(mode){ - numN[i] = irda.read_low_us(); //funcion para leer un pulso de caida o bajo en header - } - if(!mode){ - numP[i] = irda.read_high_us(); //funcion para leer un pulso de caida o bajo en header - } - //funcion para leer un pulso de caida o bajo en header - } - - pc.printf("Header=%d \n",header," uS"); - for(i=0;i<36;++i){ - pc.printf(",%d, %d, %d \n",numN[i],i,numP[i]); + } + +lop2: if(!mode){ + header = irda.read_high_us(); + if(header>3500) goto seguir2; + goto lop2; + } - if(numN[i]>8000){ - pc.printf("\n"); - pc.printf("espacios=%d\n",i); - k=i; - proL=0; - for(i=0;i<k;++i){ - proL=proL+numN[i]; - } - proL=proL/k; - pc.printf("promedio_E=%d\n",proL); - wait(3); - pc.printf("\n"); - - if(!mode){ - for(i=0;i<k-1;++i){ - if(numP[i]>(2*proL)){ - bin[i]=1; - for(j=0;j<i+1;++j){bin[i]=bin[i]*2;} - //pc.printf("%d-",bin[i]); - } - if(numP[i]<(2*proL)){ - bin[i]=0; - //pc.printf("%d-",bin[i]); - } - } - } - for(i=0;i<k-1;++i){code=code+bin[i];} - pc.printf("\n"); - pc.printf("code=%d",code); - code=0; - goto lop1; - - } - } - } - - //for(j=0;j<i;++j) \ No newline at end of file +seguir1: + for(i=0;i<numb;++i){ + numN[i] = irda.read_low_us(); //funcion para leer un pulso bajo + } + for(i=0;i<numb;++i){ + pc.printf("%d,",numN[i]); + } + pc.printf("\n"); + pc.printf("HeaderL=%d \n",header," uS"); + header=0; + for(i=0;i<numb;++i){ + proL=numN[i]+proL; + } + pc.printf("\n"); + pc.printf("prom_bajos=%d", proL/numb); + pc.printf("\n"); + pc.printf("Si el promedio bajos es mas grande de lo normal, baje en numb en el codigo y recompile"); + + wait(2); + header=0; + proL=0; + pc.printf("\n"); + pc.printf("dispare de nuevo para altos"); + mode=!mode; + pc.printf("\n"); + goto lop1; +seguir2: + for(i=0;i<numb;++i){ + numP[i] = irda.read_high_us(); //funcion para leer un pulso alto + } + for(i=0;i<numb;++i){ + pc.printf("%d,",numP[i]); + } + pc.printf("\n"); + pc.printf("copie esta cadena de arriba en su programa"); + pc.printf("\n"); + pc.printf("HeadeH=%d \n",header," uS"); + header=0; + wait(2); + goto lop1; +}