es una versión mejorada que no requiere suiche y da mas informacion. Da indicaciones si no captura la trama completa indicando que no sale un tiempo enorme al final. y el inicio se determina despues de registrar el Header alto
main.cpp@2:d189b5862909, 2017-03-24 (annotated)
- Committer:
- tony63
- Date:
- Fri Mar 24 08:29:48 2017 +0000
- Revision:
- 2:d189b5862909
- Parent:
- 1:69f833c768c8
- Child:
- 3:a63a363d9b95
versi?n mejorada del anterior no requiere suiche
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony63 | 2:d189b5862909 | 1 | //ESTA VERSION PROPORCIONA EL VECTOR DE LA TECLA PULSADA EN EL SEGUNDO MODO O CON EL SUICHE EN BAJO |
tony63 | 2:d189b5862909 | 2 | //PARA MANDOS DE 31 BITS QUe EN CASO DE SER INCOSTISTENTES SE PUEDEN MODIFICAR |
tony63 | 2:d189b5862909 | 3 | //entrega las dos cabeceras alta y baja segun el modo |
tony63 | 0:86c0c1652dd4 | 4 | #include "mbed.h" |
tony63 | 0:86c0c1652dd4 | 5 | #include <Pulse1.h> |
tony63 | 0:86c0c1652dd4 | 6 | PulseInOut irda(PTD5);// en este puerto se pone el sensor infrarrojo |
tony63 | 0:86c0c1652dd4 | 7 | |
tony63 | 0:86c0c1652dd4 | 8 | Serial pc(USBTX, USBRX); |
tony63 | 2:d189b5862909 | 9 | DigitalOut led1(LED1); |
tony63 | 0:86c0c1652dd4 | 10 | DigitalOut led2(LED2); |
tony63 | 1:69f833c768c8 | 11 | int numN[35];//cadena para almacenar todos los tiempos que conforman los bits de datos |
tony63 | 1:69f833c768c8 | 12 | int numP[35];//cadena para almacenar todos los tiempos que conforman los bits de datos |
tony63 | 1:69f833c768c8 | 13 | int bin[35];//cadena para almacenar todos los tiempos que conforman los bits de datos |
tony63 | 0:86c0c1652dd4 | 14 | int dato; // tiempo de cada dato que se lee |
tony63 | 0:86c0c1652dd4 | 15 | int pul_low; |
tony63 | 0:86c0c1652dd4 | 16 | int i,j,k,header,proL,proH; |
tony63 | 1:69f833c768c8 | 17 | int r; |
tony63 | 2:d189b5862909 | 18 | int mode=1; |
tony63 | 2:d189b5862909 | 19 | int code; |
tony63 | 2:d189b5862909 | 20 | int numb=32; |
tony63 | 0:86c0c1652dd4 | 21 | int main(){ |
tony63 | 2:d189b5862909 | 22 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 23 | pc.printf("este codigo es para 32 bits de datos"); |
tony63 | 2:d189b5862909 | 24 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 25 | pc.printf("pise reset para otro codigo"); |
tony63 | 2:d189b5862909 | 26 | pc.printf("\n"); |
tony63 | 0:86c0c1652dd4 | 27 | fflush( stdin ); |
tony63 | 2:d189b5862909 | 28 | lop1: if(mode){ |
tony63 | 2:d189b5862909 | 29 | header = irda.read_low_us(); |
tony63 | 2:d189b5862909 | 30 | if(header>8000) goto seguir1; |
tony63 | 0:86c0c1652dd4 | 31 | goto lop1; |
tony63 | 2:d189b5862909 | 32 | } |
tony63 | 2:d189b5862909 | 33 | |
tony63 | 2:d189b5862909 | 34 | lop2: if(!mode){ |
tony63 | 2:d189b5862909 | 35 | header = irda.read_high_us(); |
tony63 | 2:d189b5862909 | 36 | if(header>3500) goto seguir2; |
tony63 | 2:d189b5862909 | 37 | goto lop2; |
tony63 | 2:d189b5862909 | 38 | } |
tony63 | 0:86c0c1652dd4 | 39 | |
tony63 | 2:d189b5862909 | 40 | seguir1: |
tony63 | 2:d189b5862909 | 41 | for(i=0;i<numb;++i){ |
tony63 | 2:d189b5862909 | 42 | numN[i] = irda.read_low_us(); //funcion para leer un pulso bajo |
tony63 | 2:d189b5862909 | 43 | } |
tony63 | 2:d189b5862909 | 44 | for(i=0;i<numb;++i){ |
tony63 | 2:d189b5862909 | 45 | pc.printf("%d,",numN[i]); |
tony63 | 2:d189b5862909 | 46 | } |
tony63 | 2:d189b5862909 | 47 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 48 | pc.printf("HeaderL=%d \n",header," uS"); |
tony63 | 2:d189b5862909 | 49 | header=0; |
tony63 | 2:d189b5862909 | 50 | for(i=0;i<numb;++i){ |
tony63 | 2:d189b5862909 | 51 | proL=numN[i]+proL; |
tony63 | 2:d189b5862909 | 52 | } |
tony63 | 2:d189b5862909 | 53 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 54 | pc.printf("prom_bajos=%d", proL/numb); |
tony63 | 2:d189b5862909 | 55 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 56 | pc.printf("Si el promedio bajos es mas grande de lo normal, baje en numb en el codigo y recompile"); |
tony63 | 2:d189b5862909 | 57 | |
tony63 | 2:d189b5862909 | 58 | wait(2); |
tony63 | 2:d189b5862909 | 59 | header=0; |
tony63 | 2:d189b5862909 | 60 | proL=0; |
tony63 | 2:d189b5862909 | 61 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 62 | pc.printf("dispare de nuevo para altos"); |
tony63 | 2:d189b5862909 | 63 | mode=!mode; |
tony63 | 2:d189b5862909 | 64 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 65 | goto lop1; |
tony63 | 2:d189b5862909 | 66 | seguir2: |
tony63 | 2:d189b5862909 | 67 | for(i=0;i<numb;++i){ |
tony63 | 2:d189b5862909 | 68 | numP[i] = irda.read_high_us(); //funcion para leer un pulso alto |
tony63 | 2:d189b5862909 | 69 | } |
tony63 | 2:d189b5862909 | 70 | for(i=0;i<numb;++i){ |
tony63 | 2:d189b5862909 | 71 | pc.printf("%d,",numP[i]); |
tony63 | 2:d189b5862909 | 72 | } |
tony63 | 2:d189b5862909 | 73 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 74 | pc.printf("copie esta cadena de arriba en su programa"); |
tony63 | 2:d189b5862909 | 75 | pc.printf("\n"); |
tony63 | 2:d189b5862909 | 76 | pc.printf("HeadeH=%d \n",header," uS"); |
tony63 | 2:d189b5862909 | 77 | header=0; |
tony63 | 2:d189b5862909 | 78 | wait(2); |
tony63 | 2:d189b5862909 | 79 | goto lop1; |
tony63 | 2:d189b5862909 | 80 | } |