Behandlung von attachInterrupt ohne Interrupt?

Hallo, ich messe mittels attachInterrupt eine Frequenz. Das funktioniert recht hübsch, auch bei niedrigen Frequenzen bis hin zu wenigen Hz. Allerdings habe ich gerade einen Knoten im Hirn, bezüglich einer fehlenden Frequenz, also wenn die Frequenz null ist. Dann wird immer noch der letzte gemessene Wert angezeigt. Momentan habe ich mir damit geholfen, daß ich einen langsamen Timer laufen lasse, der, wenn er schneller ist als der Interrupt, den Wert auf null setzt.

Irgendwo im Programm den Wert auf null zu setzen ist keine gute Idee, da dies bei langsamen Frequenzen zum toggeln zwischen genulltem und gemessenem Wert führt.

Ist es nicht möglich das Nichteintreffen eines Interrupts innerhalb eines Zeitraumes zu definieren?
Wie mit einer Art Torzeit? Zeit abgelaufen: Wert = 0

Gibt es da nix?

(Ich nutze einen ESP32 Wroom)

Speichere mit millis() den Zeitpunkt der letzten Messung ab. Wenn du dann eine bestimmte Zeit nichts mehr bekommst ist die Frequenz 0

So ähnlich mache ich das jetzt ja. Nur eben mit einem Timer.

Meiner Meinung geht es nicht anders.
Definiere eine minimale gemessene Frequenz. Dieser entspricht eine bestimmten Periodendauer. Verstreicht mehr Zeit als die Periodendauer gibst Du 0 als Frequenz aus. Alternativ kannst Du auch Frequenz kleiner als 0,00x Hz angeben.

Grüße Uwe

(deleted)

Ok, danke!
Dann lasse ich es so wie es jetzt ist. es funktioniert ja.
Ich dachte nur es gibt irgend etwas wie z.B. bei
pulseIn(pin, value, timeout)
und schön wäre ein " if (timeout) { Wert = 0 ; } " :slight_smile:

Ich dachte nur es gibt irgend etwas wie …

Bau es dir!
Denn das ist programmieren.
Man baut sich das, was man benötigt.
(jammern hilft da nicht, davon wird nix fertig)