Ist genau so wie Du vermutest: Die Timerzustände kannst Du natürlich nur dann erfragen, wenn der Programmteil, in dem sie deklariert sind, auch bearbeitet wird.
In diesem Zusammenhang: Die Timer starten natürlich auch nur dann, wenn der Programmteil bearbeitet wird. Also kann ein Programm mit einer Zykluszeit von 120 ms nicht schon nach 20 ms einen Timer starten.
Alternative: lege den Timer in einen separaten Task mit einer kurzen Zykluszeit und hoher Priorität (damit die Timer nicht von anderen Tasks ausgebremst werden). Die Timerzustände kannst Du über die globalen Variablen allen anderen Programmteilen bekannt machen.
Nur: was bringt das, wenn der Programmteil, welcher die Timerzustände auswertet, mit 120 ms läuft? Ich würde eher versuchen, dieses Programm zu beschleunigen.
Gruss
Rolf
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo zusammen!
Ich habe ein Programm mit einer Zykluszeit von ca. 120ms.
Angenommen in einem Programm-Teil ist ein Timer der nach der Zeit x
irgendwann mal ausgelöst wird.
Muss ich im dümmsten Fall genau einen Zyklus warten, bis ich das
Ergbenis des Timers auswerten kann.
Beispiel Programmablauf:
Timer wird im Zyklus bei 20ms abgefragt, bei 30ms wird der Timer aktiv,
da die Zeit abgelaufen ist.Wird nun das Ergebnis erst im nächsten Zyklus
verarbeitet?
Bringt es etwas einen Task zu erstellen der Ereignisgestuert getriggert
wäre auf den Timer ?
Vielen Dank schon mal...
Grüße,
Benni
Hallo,
Ist genau so wie Du vermutest: Die Timerzustände kannst Du natürlich nur dann erfragen, wenn der Programmteil, in dem sie deklariert sind, auch bearbeitet wird.
In diesem Zusammenhang: Die Timer starten natürlich auch nur dann, wenn der Programmteil bearbeitet wird. Also kann ein Programm mit einer Zykluszeit von 120 ms nicht schon nach 20 ms einen Timer starten.
Alternative: lege den Timer in einen separaten Task mit einer kurzen Zykluszeit und hoher Priorität (damit die Timer nicht von anderen Tasks ausgebremst werden). Die Timerzustände kannst Du über die globalen Variablen allen anderen Programmteilen bekannt machen.
Nur: was bringt das, wenn der Programmteil, welcher die Timerzustände auswertet, mit 120 ms läuft? Ich würde eher versuchen, dieses Programm zu beschleunigen.
Gruss
Rolf
Hi,
der Ereignissgesteuerte Task müsste helfen.
gruß
Michael
Vielen DANK !