Once upon a time , there was a brilliant and very helpfull gentleman named Bruce Reynold.
He posted some Infra Red routines for PIC's in PICBASIC at his site Rentron.com which now is lost.
The general idea was to create a routine ,at the encoder ,which lasted in total 26μs and a dutycycle of 25% toggling a port bit on and off thus having a frequency of 38Khz.
I kept a copy and maybe you can get an idea
PROCESSOR 12c508
#include "p12c508.inc"
__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
#DEFINE PORT B'11111101'
MOVF OSCCAL
MOVLW PORT
TRIS GPIO
BEGIN
BCF GPIO, 1 ;1uS
NOP ;2uS each nop is 1uS long
NOP ;3uS
NOP ;4uS
NOP ;5uS
NOP ;6uS
NOP ;7uS
NOP ;8uS
NOP ;9uS
NOP ;10uS
NOP ;11uS
NOP ;12uS
NOP ;13uS
NOP ;14uS
NOP ;15uS
NOP ;16uS
NOP ;17uS
NOP ;18uS
NOP ;19uS low on gpio.0
BSF GPIO, 1 ;1uS Begin HIGH duty cycle
NOP ;2uS
NOP ;3uS
NOP ;4uS
NOP ;5uS
GOTO BEGIN ;2uS (26uS total for 38KHz)
END
I remember that he also had a working example with a pair of pic16f628 for remote control.
Maybe somebody can help further.
Regards
Bookmarks