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 - CCStuamigo

#1
Electrónica / Re: Programacion de PICS
16 Octubre 2011, 00:24 AM
 :D hola !! e estado investigando todo hacerk del protocolo nec y gracias a este foro encontre es codigo pero no se q pines maneja  la recepcion del infrarrojo si alguien sabe leer bn este codigo y decirme quedare muy agradecido

aqui esta el codigo

#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();
   }

}

}