Timer Problem ..

Gast #547798
Lesenswert?
• ▲
▼
Hallo!
Ich möchte gerne den Untenstehende Timer stoppen und bei Bedarf weiter 
laufen lassen. Leider finde ich keinen geeigneten Systemaufruf um eine 
saubere Lösung zu programmieren. Ich hoffe irgendjemand kann mir weiter 
helfen!

void handler()
{...}

struct itimerval myTime;
myTime.it_value.tv_sec = 1;
myTime.it_value.tv_usec = 0;

myTime.it_interval.tv_sec = 1;
myTime.it_interval.tv_usec = 0;

signal(SIGALRM, (void(*)(int)) handler);
setitimer(ITIMER_REAL, &myTime, NULL);

Der Timer löst jede Sekunde aus und ruft den handler auf.
Nun möchte ich gerne den Timer stoppen und bei Bedarf wieder aufrufen, 
sodass er erneut die Sekunden weiter zählt und den handler aufruft.

Danke vorab für Eure Antworten!!

mfg macke_a
Gast #547885
Lesenswert?
• ▲
▼
Ok ! Danke noch mal für die Info!
Allerdings muß ich sagen, das mir die Lösung nicht so ganz gefällt.

Es gibt doch bestimmt eine Möglichkeit, den Timer individuell zum 
Beispiel mit einem Flag zu löschen und anschließend wieder zu setzen.

Vielleicht hat jemand von Euch noch eine weiter Idee.??
Gast #547999
Lesenswert?
• ▲
▼
Ok..jetzt habe ich es auch gefunden...
Nun brauche ich noch eine andere Lösung, wie ich am "saubersten" meinen 
Timer unterbrechen kann.
Ich habe schon sämtliche Variation durch und mein Timer läuft immer noch 
im Sekundentakt, es sei denn ich setzte ihn gleich auf 0.

Freue mich auf kreative Antworten!!

Mfg macke_a
#548166
Lesenswert?
• ▲
▼
Erzähl dochmal, wovon Du überhaupt sprichst.

Du zählst da irgendwelche Funktionen und Variablen auf, mit denen keiner 
was anfangen kann.

Da muß doch irgendein Quelltext dazugehören, in den man reingucken kann.

Vermutlich ist das irgendein RTOS für irgendeine CPU.

Beides endlich mal anzugeben (Link, Typ) könnte viel helfen.


Peter
Gast #548331
Lesenswert?
• ▲
▼
Ich verstehe schon was er meint, allerdings habe ich keine Lösung für 
Ihn.

Er will den Timer einfach stoppen, um eine bestimmte Anweisung wie den 
handler zu unterbrechen!

Angenommen der handler macht jede Sekunde eine Ausgabe.

Nun jetzt soll er aufgrund eines Ergeignisses gestoppt werden, sodaß der 
handler nicht mehr im Sekundentakt aufgerufen wird.
Sobald das Ereigniss wieder zurückgesetzt wird, soll der handler wieder 
aktiviert werden.

So hätte ich das jetzt interpretiert!


Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren