unsigned int cnt_pf = 0;
unsigned int sample[5];
unsigned int avg_pf;
unsigned int final_pf_cnt;
float count1;
short int i;
long tlong;
float angle;
void Interrupt()
{
if (TMR0IF_bit)
{
TMR0IF_bit = 0;
TMR0L = 0xD5;
//Enter your code here
cnt_pf++;
}// Timer0
while(INT1IF_bit)// first zerocrossing found
{
TMR0IE_bit = 1;// enables timer0 interrupt
TMR0IF_bit = 0;// clear flag
cnt_pf = 0;
INT1IF_bit = 0;// clear flag for INT1
break;
}
while(INT0IF_bit)// second zerocrossing found
{
TMR0IE_bit = 0; //disable timer0
TMR0IF_bit = 0; // clear flag
INT0IF_bit = 0;//clear flag for INT0
i++;
sample[i] = cnt_pf;
avg_pf+=sample[i];
if(i==5)
{
i = 0;
avg_pf/=5;
final_pf_cnt = avg_pf;
}
break;
}
}