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:
- 0:86c0c1652dd4
- Child:
- 1:69f833c768c8
File content as of revision 0:86c0c1652dd4:
#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; } } }