es una versión mejorada que no requiere suiche y da mas informacion
Fork of CAPTURAS_IRDA by
main.cpp
- Committer:
- tony63
- Date:
- 2017-03-18
- Revision:
- 1:69f833c768c8
- Parent:
- 0:86c0c1652dd4
- Child:
- 2:d189b5862909
File content as of revision 1:69f833c768c8:
#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[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 int dato; // tiempo de cada dato que se lee int pul_low; int i,j,k,header,proL,proH; int r; int code; int main(){ 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)){ 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)