Problema con interrupción y timers millis/micros

Lo que se me ocurrió es:

void interrupcion() {

  resistencia();

}

void resistencia() {

  delayMicroseconds(PID_value);

  // triac high
  PORTD |= B01000000;
  delayMicroseconds(100);
  // triac LOW
  PORTD &= B10111111;

}

De esa manera me libero de usar delay dentro de la interrupción y no ejecuto la orden de la interrupción en el loop. Anda muchísimo mejor pero aun está un poquito lento... :frowning:

gracias por la ayuda. Si se puede mejorar escucho opiniones.