#BYTE PSTR1CON = 0x0296//
#BYTE apfcon0 = 0x011D//
#BYTE TRISA = 0x008C//
#BYTE TRISB = 0x008D//
//emisor
#define btn1 pin_b1//
#define btn2 pin_b5//
#define btn3 pin_b5//
#define led pin_a1
#define L0 "00000000"
#define L1 "00101000"
#define L2 "00101000"
#define L3 "00101000"
#define L4 "00101000"
#define L5 "00101000"
#define L6 "00101000"
//b0,b5
#use fast_io(a)
#use fast_io(b)
char dir[8];
char s[8];
#define OND 0
static int level=1;
void Send_command(int update);
void send_train()//se envia el tren de pulsos
{
int j;
int16 delay;
restart_wdt();
set_pwm1_duty(105);
apfcon0=2;
set_timer2(0);
delay_us(2600);
set_pwm1_duty(OND);
apfcon0=2;
set_timer2(0);
delay_us(500);
for (j=1;j<8;j++)
{
if(s[j]=='0')delay=100;
else if(s[j]=='1')delay=200;
else delay=0;
set_pwm1_duty(105);
apfcon0=2;
set_timer2(0);
delay_us(delay);
set_pwm1_duty(OND);
apfcon0=2;
set_timer2(0);
delay_us(50);
}
}
void setup_pwm()// configuracion del timer 2 para un pwm con 38Khz
{
setup_timer_2(T2_DIV_BY_1,210, 1);//timer para pwm de 38khz
setup_ccp1(ccp_pwm|CCP_PULSE_STEERING_C); //pwm pin_c5
apfcon0=2;
set_pwm1_duty(OND); //se pone en cero el pwm
apfcon0=2;
set_timer2(0);
restart_wdt();
}
void config()
{
setup_adc(adc_off);
setup_adc_ports(no_analogs);
SETUP_PWM();
TRISA=(0b00000000);
port_a_pullups(0b00000000);
output_a(0);
TRISB=(0b11111111);
port_b_pullups(0b11111111);
restart_wdt();
}
void Start_Modules()
{
restart_wdt();
SETUP_PWM();
TRISA=(0b00000000);
port_a_pullups(0b00000000);
}
#int_RB
void wake()
{
// delay_ms(1);
}