' schrieb:Ich würde die Schleife mit einem µs-Timer versehen und den LoopCount ( inkrementiert per Schieberegister ) bei Pulsabgabe zurücksetzen. Der kumulierte Timerwert wird ja so wie es aussieht nicht benötigt.
Hallo!
Ein µs-Timer ist ja drin. Nur das der eben nach 2^32 µs (ca. 71 min.) überläuft und damit nicht mehr taugt.
Ich erkenne ja, wenn der Überlauf stattfinden muss, da ich die Periodendauer aufs Schieberegister drauf addiere. Ich versuche jetzt dann mal ein Flag zu setzen und das wieder zu entfernen wenn dann Counter2 wieder < Counter1.
Gepulst werden darf nur, wenn Counter2 >= Counter1 (Counter1 = Counter1 alt + Periodendauer) AND Flag NOT TRUE.
Mal sehen, ob das klappt.
Hatte auch schon überlegt, dass ja durch die Frequenz/Periodendauer die Zeit exakt vorgegeben ist und ich dann einfach nach dem Puls eine entsprechende Pause dran hänge. Nur, wenn ich hier durch die Laufzeit des FPGA jedesmal ein paar Ticks Abweichung habe, dann summieren sich die auf über die Anzahl der Durchläufe.
Oder kann man den Zeitaufwand des FPGA einfach exakt berechnen?
Dann müsste ich den wieder abziehen.
Durch den Vergleich der Counter synchronisiert sich das ganze immer wieder automatisch und die Frequenz kann so eingehalten werden und es verschiebt sich nichts klamm heimlich.
Grüße
P.