Reemplazar delay's por timer's

En esta función que hacer sonar 3 veces un buzzer con oscilador, necesito reemplazar los delays por timers para que espere 50 milisegundos entre digitalWrite y digitalWrite. ¿Cómo puedo hacer?

prueba_buzzer__delay_.ino (319 Bytes)

No entiendo muy bien para que lo necesitas, realmente ya tienes puesto 50ms entre cada estado del buzer. No seria mejor opcion mills()?
(pego code para q no tengais que descargarlo)

void setup() 
{
  pinMode(PIN_BUZZER, OUTPUT);
  digitalWrite (PIN_BUZZER, 0);
  Serial.begin(115200);
}

void loop()
{
void sonarBuzzer()
{
  for (int i=0; 2>=i; i++)
      {      
          digitalWrite(PIN_BUZZER, HIGH);
          delay(50);
          digitalWrite(PIN_BUZZER, LOW);
          delay(50);
      }
}
}