Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: KtmnjjpfjsFvzG am 01. February 2013, 21:46
-
Sorry, das ich so viel frage, aber ich würde gerne wissen, wie ich herausfinde, wie spät es ist, also Zugriff auf die Systemzeit bekomme... Ich glaube, ein Unix-Timestamp wäre gut...
Im Wiki finde ich dazu nichts :?
-
http://www.lowlevel.eu/wiki/CMOS enthält zumindenst etliche Felder mit Datums&Zeitangaben. Umrechnen in einen Timestamp ist ne fixe Zimmerübung, zum fortlaufen lassen empfiehlt sich nen Timerinterrupt, dürfte für öfteres auslesen schneller kommen als jedes mal den Hardwarezugriff zu machen. Ansonsten zum weitersuchen: "Real Time Clock" (RTC).
Beim suchen nicht so auf den Timestamp fixieren, das ist nicht die einzige Darstellungsmöglichkeit ;) (und bei weitem nicht die beste, vorallem falls man doch mal Daten vor 1970 darstellen möchte).
-
Mit RTC kann man auch IRQs auslösen lassen.
-
OK ich kümmer mich später um das RTC-Ding und nehm erstmal CMOS, aber wie kann ich BCD in einen normalen integer umrechnen? Ich bräuchte sowas wie int decode_bcd(int xyz);, wenn man das einfach so versucht auszugeben, kommt verständlicherweise schrott raus... ^^
-
Über das CMOS greifst du auf die Zeit von der RTC zu.
Das Umrechnen hab ich hier kürzlich beschrieben: http://forum.lowlevel.eu/index.php?topic=3168.msg36783#msg36783
-
Alles klar :)
Dass es nicht die Zeit hier in Deutschland, sondern die am Nullmeridian angibt, ist ja wohl beabsichtigt, oder?
Auf jeden Fall Danke, klappt perfekt!
-
Kommt drauf an was derjenige, der die Uhr eingestellt hat, sich gedacht hat. Der Standard unter Linux ist UTC und unter Windows ist es Ortszeit. Und wer weiß, was die Emulatoren machen, wenn ihnen keiner sagt, was sie tun sollen. Vermutlich gibts für die auch nen Parameter.
-
Der Standard unter Linux ist UTC und unter Windows ist es Ortszeit.
Was, wenn man beides installiert hat? Man hat doch nur eine Systemuhr...
-
Das muss eins von beiden so konfiguriert sein, dass es mit der nicht erwarteten Zeitangabe zurecht kommt. Vielleicht kriegen deren Setups das ja raus.
-
Jo OK man muss ja beim Setup immer die Zeit einstellen, evtl. setzt der dann nur die Minuten + Sekunden und speichert die Differenz bei den Stunden ab, so könnte das klappen...
-
Wird nicht so gemacht.
Für Windows gibts nen versteckten Registrykey um auf UTC umzuschalten, wird selten gemacht.
Verbreiter ist es unter Linux nen Flag zu setzen das localtime gespeichert ist. Setzt natürlich immernoch ne korrekte Zeitzone voraus. Das wird von vielen Distributionsinstallern auch gemacht, wenn ne Windowsinstallation gefunden wird.
-
Aha OK^^, interessant... mal überlegen, wie ich es später mache, wenn ich versuche, mein OS richtig zum laufen zu bringen, und nicht nur auf QEMU ^^