#include <18f4550.h>
#FUSES HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOPBADEN,NOLVP,NOCPD,NODEBUG,NOWRT,NOVREGEN
#FUSES CPUDIV1,NOIESO,NOLVP,NODEBUG,PLL1,NOMCLR
#USE delay(clock=20000000)
#USE rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7)
#USE fast_io(B)
#BYTE port_b = 6
INT x=0,y=0,VECES=0,CRUCE=70;
#INT_TIMER0
VOID TIMER0()
{
output_bit(PIN_B1,1);
// delay_us(1);
#asm
nop
nop
nop
nop
NOP
NOP
NOP
NOP
#endasm
//printf("estoy dentro");
output_bit(PIN_B1,0);
}
#INT_EXT
VOID Cruce_Por_0()
{
VECES++;
IF(y<1){
set_timer0(CRUCE);
ext_int_edge(0,H_TO_L);
y=2;
}
ELSE{
set_timer0(CRUCE);
ext_int_edge(0,l_TO_H);
y=0;
}
IF (VECES>50){
CRUCE++;
VECES=0;}
IF (CRUCE>150){
CRUCE=70;
}
}
VOID main() {
set_tris_B(0b00000001);
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0);
enable_interrupts(INT_EXT);
setup_timer_0(RTCC_INTERNAL | RTCC_8_BIT | RTCC_DIV_256);
ext_int_edge(0,L_TO_H);
set_timer0(CRUCE);
WHILE(1){
}
}