Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: sp am 08. January 2005, 12:25

Titel: Systemtimer und Delay Funktionen
Beitrag von: sp am 08. January 2005, 12:25
Hallo

Ich habe zwei Fragen zum Thema Zeitmessung. Für einen Treiber benötige ich gerade eine Art Delay-Funktion, nur leider weiß ich nicht wie ich das realisieren soll. Und wo wir gerade schon einmal beim Thema sind, wie funktioniert eigentlich die kleine Uhr im Betriebssystem? Ist das die CMOS-Uhr?


sp
Titel: Systemtimer und Delay Funktionen
Beitrag von: Roshl am 08. January 2005, 12:33
Ich mach  das ganze über den Timerinterrupt, der Updated jedesmal eine Variable, schliesslich weiß ich ja wie viel zeit dazwischen lag.
Dann hab ich die Zeit und anhand dessen kann man ja einen delay machen.
Und CMOS  kann man sicherlich verwenden um die aktuelle Zeit zu finden
Titel: Systemtimer und Delay Funktionen
Beitrag von: Roshl am 17. January 2005, 16:15
Naja ich hab meinen Rechner bisher nie 42 Tage durchlaufen lassen^^
Das Problem besteht aber immer, wenns hilft kannste ja 64Bit nehmen^^
Titel: Systemtimer und Delay Funktionen
Beitrag von: hannibal am 17. January 2005, 22:39
man koennte auch ganz einfach eine 'gettickcount'-funktion mit einer parameteruebergabe des anfangswertes bereitstellen (zb GetTickCount(64400)) mal angenommen der zaehlt dann ueber 32bit drueber und beginnt wieder bei null kann man hier trotzdem die differenz unter beruecksichtigung des zuruecksetztens berechnen.
Titel: Systemtimer und Delay Funktionen
Beitrag von: tokmar am 18. January 2005, 14:15
Wie wärs wenn du in regelmäßigen (1x am Tag oder so) abständen die CMOS-Zeit ausliest und die Differenz zur Systemzeit zwischen speicherst. Wenn dann am 49. Tag der Überlauf kommt, liest du dann nochmal die CMOS-Zeit aus, addierst die Differenz und speicherst das als neue Systemzeit ab.