unsigned int timeperiod1=0;
unsigned int timeperiod2=0;
void __attribute__((__interrupt__)) _IC1Interrupt(void)
{
unsigned int t1,t2;
if(PORTDbits.RD8) // rising edge of the pulse
{ timePeriod1=0;
TMR2=0;// timer counter become reseted
t1=IC1BUF; // present time period value
T2CONbits.TON = 1;// Start Timer
}
else if(!PORTDbits.RD8)// falling edge of the pulse
{
T2CONbits.TON = 0;// Stop Timer
timeperiod1=TMR2; // time period calculation based on timer
t2=IC1BUF; // updated value
timeperiod2=t2-t1; // time period calculation based on inputcapture
}
}