Man erstellt "keinen Timer in C". Es gibt nichts über das Timing oder die Zeitplanung im C-Standard. Wie dies erreicht wird, bleibt dem Betriebssystem überlassen.
Dies ist wahrscheinlich eine vernünftige Frage für einen C noob, da viele Sprachen solche Dinge unterstützen. Ada tut das, und ich glaube, dass die nächste Version von C ++ das wahrscheinlich tun wird (Boost hat jetzt Unterstützung dafür). Ich bin mir ziemlich sicher, dass Java das auch kann.
Unter Linux wäre der beste Weg, pthread zu verwenden. Insbesondere müssen Sie pthread_create () aufrufen und die Adresse Ihrer Routine übergeben, die vermutlich eine Schleife enthält mit einem sleep () (oder usleep () ) rufe unten an.
Beachten Sie, dass, wenn Sie etwas tun wollen, das die Echtzeit-Planung approximiert, nur ein dummes usleep()
nicht gut genug ist, weil es die Ausführungszeit der Schleife selbst nicht berücksichtigt. Für diese Anwendungen müssen Sie einen periodischen Timer einrichten und darauf warten.
Die Frage nach einem Timer ist ziemlich unspezifisch, obwohl mir zwei Funktionen in den Sinn kommen, die Ihnen helfen werden:
Siehe Hilfeseiten für weitere Erklärungen:)
Wenn die GPS-Daten von einem Hardwaregerät stammen, z. B. über einen seriellen Port, sollten Sie die Architektur ändern, damit der Parser den Code startet, den Sie ausführen möchten, wenn mehr Daten vorhanden sind verfügbar.
Es könnte dies durch eine Callback-Funktion tun oder es könnte ein Event senden - die tatsächliche Implementierung hängt davon ab, was Sie zur Verfügung haben.