Autor Thema: Systemtimer und Delay Funktionen  (Gelesen 5161 mal)

sp

  • Gast
Gespeichert
« 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

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 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
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #2 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^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #3 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.
\\o
o//
\o/

tokmar

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #4 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.

 

Einloggen