Timer in C
-
Hallo!
Ich brauche für eine Software, die in einem Funkgerät läuft einen Timer. Im Netz bin ich leider nicht fündig geworden und deshalb frage ich hier, ob es Timer in C überhaupt gibt oder man sie selber implementieren kann/muss?Bin für jeden neuen Aufschluss dankbar.
Konsumierer
-
C kennt afaik keine Timer.
Das Betriebssystem kennt Timer.
-
Du könntest dir in C höchstens so etwas ähnliches nachbauen.
Denkbar wäre eine Funktion, die ständig aufgerufen wird. In der Funktion müsste dann geprüft werden, ob die Zeit seit dem letzten "Timerereignis" (Aufruf einer bestimmten Funktion) abgelaufen ist und dann natürlich das Ereignis ausführen (also die bestimmte Funktion aufrufen).Beispiel:
... void timer_func(void) { static unsigned int last_event = clock(); // wenn das letzte Ereignis mind. 5 Sekunden zurück liegt if((clock() - last_event) / CLK_TCK >= 5) { execute_event(); } } ... while(...) { ... timer_func(); ... };
Das ist jetzt natürlich nur eine starre Lösung ;).
-
Konsumierer schrieb:
[...] Ich brauche für eine Software, die in einem Funkgerät läuft einen Timer. [...]
Wenn dein Programm in einem Funkgerät läuft, dann schätze ich mal, dass du einen Micro Controller benutzt. Für den Fall, überprüfe mal, ob das Teil nicht einen Timer Interrupt kennt.