es una versión mejorada que no requiere suiche y da mas informacion
Fork of CAPTURAS_IRDA by
Diff: main.cpp
- Revision:
- 0:86c0c1652dd4
- Child:
- 1:69f833c768c8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Mar 18 00:59:20 2017 +0000 @@ -0,0 +1,66 @@ +#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 led2(LED2); +DigitalIn mode(PTD0); +int numN[70];//cadena para almacenar todos los tiempos que conforman los bits de datos +int numP[70];//cadena para almacenar todos los tiempos que conforman los bits de datos +int dato; // tiempo de cada dato que se lee +int pul_low; +int i,j,k,header,proL,proH; +int r; +int main(){ +Timer t; +fflush( stdin ); +lop1: header = irda.read_low_us(); + if(header>8000) goto seguir; + 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]); + + 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)){ + pc.printf("1"); + } + if(numP[i]<(2*proL)){ + pc.printf("0"); + } + } + } + + goto lop1; + + } + } + } + + \ No newline at end of file