Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 3:a63a363d9b95, committed 2019-06-25
- Comitter:
- tony63
- Date:
- Tue Jun 25 17:47:43 2019 +0000
- Parent:
- 2:d189b5862909
- Commit message:
- NUEVA VERSION;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Mar 24 08:29:48 2017 +0000
+++ b/main.cpp Tue Jun 25 17:47:43 2019 +0000
@@ -1,71 +1,94 @@
+//PROGAMA PARA CARACTERIZAR CONTROLES REMOTOS INFRARROJOS
+//AUN NO DETECTA NUMERO DE BITS, USTED DEBE ADAPATAR EL PROGRANAMA PARA ESO
//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
+//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;
+
+DigitalOut ledA (LED1);
+DigitalOut ledR (LED2);
+DigitalOut ledV (LED3);
+int numN[45];//cadena para almacenar todos los tiempos que conforman los bits de datos bajos
+int numP[45];//cadena para almacenar todos los tiempos que conforman los bits de datos altos
+int bin[45];//cadena para almacenar todos los tiempos que conforman los bits de datos solo tiempos en uS
+int dato; // tiempo de cada dato que se lee tiempo instantaneo
+int pul_low; // pulso bajo
+int i,j,k,proL,proH;
+int header=0;//cabeceras
int r;
-int mode=1;
+int mode=1;//moddo de lectura
int code;
-int numb=32;
+int numb=44;//numero de bits de la cadena
+
+//***********************************************************************************************************
int main(){
+ledR=1;
+ledA=1;
+ledV=0; //prendo led verde.............................
+wait(3); //espero 3 segundos
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("Al final de esta prueba 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;
+fflush( stdin );//limpio buffer de datos usart
+lop1: if(mode){ //si el modo es 1
+ header = irda.read_low_us();//pregunto por un pulso bajo de mas de 3000 debe ser un header
+ if(header>3000) goto seguir1;
+ goto lop1;//repito
}
lop2: if(!mode){
header = irda.read_high_us();
- if(header>3500) goto seguir2;
+ if(header>3000) goto seguir2;
goto lop2;
}
seguir1:
+ ledV=1;
+ ledA=0;
for(i=0;i<numb;++i){
numN[i] = irda.read_low_us(); //funcion para leer un pulso bajo
+ wait_us(300);//espera sugerida
}
+ pc.printf("Estos de abajo son los pulsos bajos \n");
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){
+ for(i=0;i<numb;++i){//los sumo a todos son de espera
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");
+
+ for(i=0;i<numb;++i){
+ numN[i] = 0; //limpiar arreglo
+ }
- wait(2);
header=0;
proL=0;
pc.printf("\n");
pc.printf("dispare de nuevo para altos");
- mode=!mode;
+ mode=!mode;//cambio de modo ahora es modo cero..
pc.printf("\n");
- goto lop1;
+ header=0;
+ goto lop2;
seguir2:
+ ledA=1;
+ ledR=0;//prendo led verde
+ pc.printf("Estos de abajo son los pulsos Altos \n");
for(i=0;i<numb;++i){
numP[i] = irda.read_high_us(); //funcion para leer un pulso alto
+ wait_us(300);
}
for(i=0;i<numb;++i){
pc.printf("%d,",numP[i]);
@@ -75,6 +98,21 @@
pc.printf("\n");
pc.printf("HeadeH=%d \n",header," uS");
header=0;
- wait(2);
- goto lop1;
+ for(i=0;i<numb;++i){
+ numP[i] = 0; //limpiar arreglo
+ }
+ ledR=1;//apago todos los leds
+ ledA=1;
+ ledV=1;
+ while(1)//de forma infinita oscila led verde
+ {
+ ledR=0;
+ wait_ms(300);
+ ledR=1;
+ wait_ms(300);
+ }
+
+ //goto lop1;
}
+
+
\ No newline at end of file