es una versión mejorada que no requiere suiche y da mas informacion

Dependencies:   mbed Pulse1

Fork of CAPTURAS_IRDA by Gustavo Ramirez

main.cpp

Committer:
tony63
Date:
2017-03-24
Revision:
2:d189b5862909
Parent:
1:69f833c768c8
Child:
3:0e1e959c2f4f

File content as of revision 2:d189b5862909:

//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 led1(LED1);
DigitalOut led2(LED2);
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 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:  if(mode){
       header = irda.read_low_us();
       if(header>8000) goto seguir1;
       goto lop1;
       }
       
lop2:  if(!mode){
       header = irda.read_high_us(); 
       if(header>3500) goto seguir2;
       goto lop2;
       }
       
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;                 
}