CMOS-uhr zu schnell
-
Ich möchte in mein OS eine Zeitanzeige implementieren.
Ich benutze folgenden Code:
void cmos_Time(time_t* time) { time->second = BCDtoDecimal(cmos_read(CMOS_SECOND)); time->minute = BCDtoDecimal(cmos_read(CMOS_MINUTE)); time->hour = BCDtoDecimal(cmos_read(CMOS_HOUR)); time->dayofmonth = BCDtoDecimal(cmos_read(CMOS_DAYOFMONTH)); time->month = BCDtoDecimal(cmos_read(CMOS_MONTH)); time->year = BCDtoDecimal(cmos_read(CMOS_YEAR)); } int get_seconds() { time_t* time = 0; cmos_Time(time); return time->second; }
Über einen Befehl in der Shell lasse ich mir die Sekunden anzeigen.
Doch wenn ich sie mit der realen Zeit vergleiche, vergehen diese zu schnell.5 Sekunden real ~ 15 Sekunden in meinem OS
-
Laesst du das Ding auf nem Emulator laufen? Wenn ja, auf welchem?
-
Lass mich raten: Bochs.
-
Danke, bin jetzt selbst darauf gekommen, dass es an Bochs liegt.
Aber warum?
-
Was sagt echte Hardware?
-
Echte Hardware habe ich nicht probiert, aber unter qemu funktioniert es perfekt.
Danke für die Hilfe!
-
Wieso kann Bochs sowas nicht? Klingt für mich nicht nach etwas, was schwer zu implementieren wäre.
-