Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - mvelez

#1
hola este programa que hice no me lee bien la frecuencias del protocolo NEC y por eso cada vez que oprimo una misma tecla del control, me muestra numeros diferentes por el I2C. no se si es que tenga que usar un receptor infrarrojo (estoy usando el SFH 5110-40 de 40kHz, este se encuntra en RB0) distinto o si es problema del programa. si alguin me pudira ayudar se lo agradeceria. gracias.


#INCLUDE <16F877A.h>
#INCLUDE <MATH.H>
#USE delay(clock=20000000)
#FUSES HS,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#USE I2C(master,SDA=PIN_C4,SCL=PIN_C3,slow)
#BYTE PORT_B= 6
#BYTE PORT_C= 7

LONG     TT,T,TTI;
INT1     START=0,DAT[32],HAYDAT;
INT      CDAT,I,CONTROL,CONT,AUX;

VOID LIMPIAR(VOID)
{
FOR(I=0;I<32;I++)
{
    DAT=0;
}
  CDAT=0;
}

#INT_EXT
VOID LEER()
{
   TT = GET_TIMER1();
   T = TT-TTI;
   TTI= TT;

  IF(START==1)
   {
      IF(T>1375 && T<1420)
      {
      DAT[CDAT]=1;
      CDAT++;
      }
      IF(T>686 && T<708)
      {
      DAT[CDAT]=0;
      CDAT++;
      }
      IF(CDAT==32)
      {
         HAYDAT=1;
      }
   }
   IF(T>8375 && T<8500)
   {
      START=1;
      LIMPIAR();
   }
}

VOID CONVERTIR()
{
   FOR(CONT=16;CONT<=23;CONT++)
   {
      IF(DAT[CONT]==1)
      {
         AUX=POW(2,CONT-16);
         CONTROL=AUX+CONTROL;
      }
   }
}

VOID MAIN()
{
SET_TRIS_B(0B11111111);
SET_TRIS_C(0B11100111);
EXT_INT_EDGE(H_TO_L);     // Configuro captura de 1er flanco de subida
ENABLE_INTERRUPTS(INT_EXT); // Habilito las interrupciones necesarias
ENABLE_INTERRUPTS(GLOBAL);
SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8);
START=0;
HAYDAT=0;
LIMPIAR();


WHILE(TRUE)
{
   IF(HAYDAT==1)
   {
      HAYDAT=0;
      CONVERTIR();
      I2C_START();
      I2C_WRITE(0X40);
      I2C_WRITE(CONTROL);
      I2C_STOP();
   }

}

}
#2
Hola soy nuevo en el foro y quisiera saber si alguien me podria ayudar sobre como utilizar en timer1 en CCS, para un proyecto en el cual necesito leer una señal IR de un control remoto. gracias