volatile unsigned char state = 3;
         unsigned long int time1;
volatile unsigned long int time2;
         unsigned long int raznost;

void setup()
{
  pinMode(2,INPUT_PULLUP);
  pinMode(3,OUTPUT);

  attachInterrupt(digitalPinToInterrupt(2), blink, CHANGE);

}
 
void loop()
{ 
  if(state==0)
    {
     time1=time2; 
     state=3;
    
    }
  if(state==0x04)
    {
     raznost= time2- time1;
     state=3;
    
     for (int i=0; i<2; i++)
         {
          digitalWrite(3, HIGH);
          time1=micros();
          while ((micros()-time1)<raznost);
          digitalWrite(3, LOW);
          time1=micros();
          while ((micros()-time1)<raznost);
         }

    }  
}
 
void blink()
{

  state = PIND&0x04;
  time2=micros(); 
  
}