' schrieb:Laufen beide Timer nicht gleich?
Welche
beiden Timer?
Der eine Timer sitzt außerhalb der Schleife, der andere innerhalb. "Laufen" tut eigenlich nur ein Timer - der innerhalb der Schleife. Der außerhalb ist nur dazu da, das Schieberegister - respektive den ganzen Algorithmus - zu initialisieren. Er schreibt ein einziges Mal einen Wert in das Schieberegister. Danach hat dieser Timer nichts mehr zu sagen.
(Das andere Element, Metronom, ist einer Verzögerungszeit, also kein Timer, der kontinuierlich läuft).
Zitat:Oder was passiert genau mit dem Schieberegister?
Ein Schieberegister ist ein Datenkonstrukt, das es erlaubt einen Datenwert vom Ende eines Datenflusses an den Anfang zu bringen. Normalerweise geht sowas nämlich nicht - außer eben mit einem Schieberegister. Das Schieberegister bekommt seinen Startwert (ggf.) links außerhalb der Schleife. Innerhalb der Schleife
muss das Schieberegister am rechten Rand einen - ggf. neuen - Wert bekommen. Dieser "neue" Wert erscheint dann links am Anfang des Datenflusses. Soviel zur Theorie.
Hier gilt:
Der Wert des Schieberegisters bleibt solange erhalten, wie TRIGGER auf False steht (der Wert vom Anfang wird wieder reingeschrieben). Da der Timer hochläuft und das Schieberegister gleich bleibt, entsteht eine hochlaufende Differenz (bis 2000, dann Abbruch). Wird TRIGGER einmal auf True gesetzt, so wird der eben festgestellte Timer-Wert in das Schieberegister geschrieben (der alte Wert ist verloren, jetzt steht ein neuer Wert drinn) => Die Differenz wird resettet, beginnt also wieder bei Null.
Zitat:Wird die Zeit einmal gelesen und mit dem Schieberegister immer wieder neu eingelesen oder wie?
Im Schieberegister steht praktisch der Startzeitpunkt. Der bleibt immer gleich - solange Trigger=false. (Bei Trigger=true gilt: neuer Startzeitpunkt.) Verglichen wird der Schieberegisterwert mit dem aktuellen Timer.