PWM-Signal auswerten

Kann das an dem "goto" liegen? Weil er erkennts nicht als funktion, aber es ist ja eine offizielle Funktion !?

Das versteht wohl keiner so richtig ?!

Was meinst du mit "Funktion" ?

Ein goto ist keine Funktion sondern etwas, was eigentlich nichts in einem Programm zu suchen hat.

Ich möchte die delay()-Schleife raus haben.

Du meinst dein pulseIn() ?
Diese Funktion wirkt zwar wie ein delay und liefert ein unsigned long ( kein int ) zurück.
Aber wenn du sicher bist, dass pulseIn innerhalb weniger msec zurückkommt, ist das ganz in Ordnung.

Generell schmeisst man alle goto's raus und freut sich, wenn loop() schnell fertig ist und wieder neu startet.
Wenn eine LED länger leuchten soll, merkt man sich, wann sie eingeschaltet wurde und wann man sie also wieder ausschalten kann.
BlinkWithoutDelay

Von einem loop Durchlauf zum nächsten kannst du Variable aufheben in globalen oder static Variablen:

const unsigned long LED_DAUER = 500; // 0.5 sec
static unsigned long start;
if ( led_anschalten ) {    // wann die Anschalt-Bedingung erfüllt ist, hab ich hier weggelassen. 
   digital_Write(13,HIGH);
    start=millis(); 
}

if ( millis() - start > LED_DAUER) {
  digitalWrite(13,LOW);
}