Zustand Timer Abfrage ob dieser bereits läuft oder nicht

Moin zusammen,

ich hoffe, ihr könnt mir vielleicht weiterhelfen.
In meinem aktuellen Projekt möchte ich eine Zeitdauer zwischen zwei Eingaben messen.
Dabei soll die erste Eingabe den Timer starten, sofern dieser noch nicht läuft.
Dafür brauche ich jedoch eine Abfrage, ob der Timer schon läuft.
Ich finde jedoch leider nichts darüber, wie ich überprüfen kann, ob der Timer bereits läuft oder nicht.

Könnt ihr mir da weiterhelfen?

Viele Grüße und schon mal vielen Dank
Simon

Setzen Sie eine Bool-Variable auf „true“, wenn Sie Ihren Prozess starten, und auf „false“, wenn der Prozess endet. Sie können den Wert dieser Variablen dann überprüfen, um zu wissen, ob der Prozess fertig ist.

Das sollte mit millis() ganz einfach funktionieren.

Moin moin! Ich kenne Lanhstein...

welchen Timer meinst du? den im Arduino eingebauten Millisekundenzähler oder einen per Programm erstellten Timer?

und was nennst du 'Eingaben'? Ist es das Betätigen einer Taste auf der Tastatur?

Wenn es das Drücken einer Taste ist :

  1. dessen Drücken erkennen, den Millisekundenzähler des Arduinos in einer Variablen speichern,

  2. das Loslassen der Taste erkennen, den Millisekundenzähler erneut ablesen und vom ersten gespeicherten Wert abziehen,

  1. rechne das Ergebnis in Millisekunden, Sekunden, Minuten um.

in ein Programm:

  1. Drücken erkannt: unsigned long erster_Aufruf = millis();

  2. Loslassen erkannt: unsigned long gemessene_Zeit = millis() - erste_Auflage;

  3. Die Variable 'gemessene_Zeit' enthält die Dauer in Millisekunden.

Gerne!
Frage den Timer doch....
Wenn er dir das nicht sagen kann, ist es der falsche Timer für deine Zwecke.

Auch wenn du es noch nicht weißt...
Du möchtest einen endlichen Automaten bauen!

Eingabe ist ein flankenwechsel an einem Flipflop. Erster Flankenwechsel soll den Timer starten, der nächste dann stoppen.

Wenn also der zweite Flankenwechsel kommt, möchte ich überprüfen, ob der Timer bereits läuft.

Ich kenne deinen Timer nicht!

(Das Thema war im englischen Forum, ich habe darauf geantwortet und es wurde von einem Moderator ins deutsche Forum verschoben, deshalb habe ich von Lanhstein gesprochen).

erstellen Sie eine Boolean-Variable;

Wenn eine Front kommt, testen Sie die bool-Variable:

  1. Die Variable bool ist auf 0 gesetzt: Das ist die erste Front, starten Sie den Timer und setzen Sie die Variable auf 1;
  2. Die Variable bool ist auf 1: Es ist die zweite Flanke, halten Sie den Timer an (oder testen Sie ihn) und setzen Sie die Variable auf 0;
1 Like

Hallo
Nimm eine Zähler, der die Flanken zählt:
Wenn der Zähler ungerade ist dann löpt der Zähler,
wenn grade dann nicht.
Einfach mal ausprobieren und rumbasteln, es ist Wochenende

Hier gibts eine Stoppuhr

Danke euch, das hat mir sehr geholfen

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.