#include <main.h>
int16 t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;
#INT_EXT
void  EXT_isr(void) 
{
   disable_interrupts(INT_EXT);
   set_timer1(0x00);
   while(input(PIN_B0)==0)
   {
   }
   t1=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==1)
   {
   }
   t2=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==0)
   {
   }
   t3=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==1)
   {
   }
   t4=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==0)
   {
   }
   t5=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==1)
   {
   }
   t6=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==0)
   {
   }
   t7=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==1)
   {
   }
   t8=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==0)
   {
   }
   t9=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==1)
   {
   }
   t10=get_timer1();
   set_timer1(0x00);
   while(input(PIN_B0)==0)
   {
   }
   t11=get_timer1();
}

void main()
{
   set_tris_b(0xff);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);      //5.4 ms overflow
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);
   ext_int_edge(0,H_TO_L);
   t1=0;
   t2=0;
   t3=0;
   t4=0;
   t5=0;
   t6=0;
   t7=0;
   t8=0;
   t9=0;
   t10=0;
   t11=0;
   while(1)
   {
      if(input(PIN_B5)==0)
      {
      printf("%Lu %Lu %Lu %Lu %Lu %Lu %Lu",t1,t2,t3,t4,t5,t6,t7);
      printf("%Lu %Lu %Lu %Lu\r",t8,t9,t10,t11);
      t1=0;
      t2=0;
      t3=0;
      t4=0;
      t5=0;
      t6=0;
      t7=0;
      t8=0;
      t9=0;
      t10=0;
      t11=0;
      delay_ms(1000);
      enable_interrupts(INT_EXT);
      }
   }

}
