// Base de Tiempos //////////////////////////////////////////////////
#int_timer1
void timer1_handler(void){
++timer1_overflows; // One Tick: 0.0833 uS, One Overflow: 5,461333 mS
}
// Canal 1 : RB0 ////////////////////////////////////////////////////
#int_ext
void channel_1_handler(void){
if(flagFirstEdge==0x00){
flagFirstEdge=0x01;
timer1_overflows=0x00;
set_timer1(0);
}
ChannelEdge[Index] = '1' + next_Interrupt_1;
Overflows[Index] = timer1_overflows;
Timer[Index] = get_timer1();
++Index;
if(next_Interrupt_1=='H'){
ext_int_edge(0,H_TO_L);
next_Interrupt_1='L';
}
else{
ext_int_edge(0,L_TO_H);
next_Interrupt_1='H';
}
}
// Canal 2 : RB1 ////////////////////////////////////////////////////
#int_ext1
void channel_2_handler(void){
if(flagFirstEdge==0x00){
flagFirstEdge=0x01;
timer1_overflows=0x00;
set_timer1(0);
}
ChannelEdge[Index] = '2' + next_Interrupt_2;
Overflows[Index] = timer1_overflows;
Timer[Index] = get_timer1();
++Index;
if(next_Interrupt_2=='H'){
ext_int_edge(1,H_TO_L);
next_Interrupt_2='L';
}
else{
ext_int_edge(1,L_TO_H);
next_Interrupt_2='H';
}
}
// Canal 3 : RB2 ////////////////////////////////////////////////////
#int_ext2
void channel_3_handler(void){
if(flagFirstEdge==0x00){
flagFirstEdge =0x01;
timer1_overflows=0x00;
set_timer1(0);
}
ChannelEdge[Index] = '3' + next_Interrupt_3;
Overflows[Index] = timer1_overflows;
Timer[Index] = get_timer1();
++Index;
if(next_Interrupt_3=='H'){
ext_int_edge(2,H_TO_L);
next_Interrupt_3='L';
}
else{
ext_int_edge(2,L_TO_H);
next_Interrupt_3='H';
}
}