Muy bien día, después de algún tiempo encontré una librería para el CCS que codifica los códigos infrarrojos de un control Philips para inmensas aplicaciones,
sin embargo me encontré con algunas dudas con respecto a la frecuencia y el pin por el que es conectado el infrarrojo. Hice un código mas o menos parecido
como el que aparecen en los foros del CCS y que pueden consultar en la pagina:
http://www.ccsinfo.com/forum/viewtopic.php?p=152585#152585acerca de este tema. Les dejó el codigo, no se porque no me funciona quiza sea el pin donde entran los datos del IR pero lo he probado con el B0 el B1 y no
consigo nada. Espero me puedan ayudar
#include <18f4550.h>
#fuses XT,BROWNOUT,NOWDT,PUT
#use delay(clock=20M)
#include <types.h>
//CONFIGURACIÓN DE LIBRERÍA
#define RC5_DATA_PIN PIN_B0
#define RC5_TICKS_PER_MS (1000/26)
#define RC5_GetTimer() get_timer0()
//ESPECIFICACIÓN DE LIBRERÍAS
#include <rc5.h>
#include <lcd.c>
//RUTINA DE INTERRUPCION "RB" PARA CODIFICACIÓN DE CODIGOS IR
#INT_RB
void Interrupt_RB(void)
{
RC5_InterruptHandler();
clear_interrupt(INT_RB);
}
void main()
{
//CONFIGURACION DE TIMER 0
int16 rc5code;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128);
set_tris_b(0xFF);
input_b();
lcd_init();
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"CODIGO ENVIADO:");
lcd_gotoxy(1,2);
//HABILITACION DE INTERRUPCIONES
clear_interrupt(INT_RB);
enable_interrupts(INT_TIMER0);
enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);
while(TRUE)
{
if(RC5_CodeReady()) //SI HAY BITS DE START EN EL PUERTO, INICIAR LA CODIFICACION
{
rc5code = RC5_GetCode(); //OBTENER EL CODIGO COMPLETO
printf(lcd_putc,"0x%04LX",rc5code);
}
RC5_TimeoutIncrement();
}
}