Autor Tema: Codificacion IR. Protocolo RC5-Philips  (Leído 2180 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PabloPic

  • PIC10
  • *
  • Mensajes: 15
Codificacion IR. Protocolo RC5-Philips
« en: 05 de Mayo de 2014, 23:02:09 »
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#152585
acerca 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();
     
   }
}

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Codificacion IR. Protocolo RC5-Philips
« Respuesta #1 en: 06 de Mayo de 2014, 13:19:35 »
por el pin b0 esperas recibir los datos?

si es así, el error está ahí, la interrupción RB es para cambio de estado en los pines b4-b7, la interrupción asociada al pin b0 es la int_ext, para el pin b1 es la int_ext1 y debes configurar en que flanco quieres que ocurra la interrupción
"Nada es imposible, no si puedes imaginarlo"

Desconectado PabloPic

  • PIC10
  • *
  • Mensajes: 15
Re: Codificacion IR. Protocolo RC5-Philips
« Respuesta #2 en: 06 de Mayo de 2014, 14:23:03 »
Oh muy bien, ¿La interrupción de cambio aplica para las familias 16Fxxx y 18xFxxx? o solo algunos modelos de microocontroladores en especial

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Codificacion IR. Protocolo RC5-Philips
« Respuesta #3 en: 06 de Mayo de 2014, 15:00:53 »
todos los 16f y 18 tienen ambas interrupciones, la RB y la ext, los 16f solo tienen una ext y los 18 pueden tener varias
"Nada es imposible, no si puedes imaginarlo"


 

anything