Bios-Timer auslesen und setzen?



  • Hallo,

    kann mir jemand sagen wie ich dies erreichen kann?
    Nach Möglichkeit nicht in Assembler. Da habe ich leider Probleme mit 😞

    gruss eclere



  • Was genau meinst du mit BIOS-Timer und was genau willst du damit erreichen?
    Und unter welchem OS?



  • eclere schrieb:

    Hallo,

    kann mir jemand sagen wie ich dies erreichen kann?
    Nach Möglichkeit nicht in Assembler. Da habe ich leider Probleme mit 😞

    gruss eclere

    Ich geh mal davon aus das du die Uhrzeit meinst die in dem BIOS steht. Hierfür wirst du wohl oder übel mit Assembler arbeiten müssen.



  • Mit WinAPI.



  • @guenni: Des geht schon auch mit C/C++ o.ä., du brauchst nur die funktionen in/out und ein Betriebssystem das direkten Zugriff auf die Hardware ermöglicht. Und genau da ist bei Windows NT/2000/XP der Haken 😉



  • Hallo,
    vielen Dank für die Antworten. Ich möchte gerne den RTC-Timer (oder heißt der RCT?) setzen.

    gruß Thorsten



  • Direkter Hardware zugriff sollte doch mit linux möglich sein oder?

    mfg blan



  • blan schrieb:

    Direkter Hardware zugriff sollte doch mit linux möglich sein oder?

    mfg blan

    lol



  • eclere schrieb:

    Ich möchte gerne den RTC-Timer (oder heißt der RCT?) setzen.

    Das Ding heißt RTC (=Real Time Clock) und ist ein Teil des CMOS. Das CMOS wird über die Ports 0x70 (Adressregister) und 0x71 (Datenregister) angesprochen. Das Adressregister ist ein 1byte Register, das als index in den CMOS Speicher dient. D.h. das falls an Addresse 0x70 das Byte 20 geschrieben wird, kann aus dem Datenregister (auch 1byte Register) das Byte an der Stelle 20 im CMOS gelesen/geschrieben werden. Zu beachten ist, dass das höchste bit im Adressregister _immer_ erhalten bleiben sollte, da es angibt ob der NMI (=Non-maskable-interrupt) aktiviert oder deaktiviert ist, d.h. das man zuerst den Wert des Adressregisters auslesen muss und anschließend die untersten 7bit mit dem gewünschten Index überschreiben kann und wieder in das Adressregister schreiben muss.
    Ne Liste mit der Bedeutung der Bytes an einem best. Index gibts hier.

    Das Problem mit Windows/Linux ist, dass du keinen Zugriff auf den Adress/Datenport bekommst, da der Prozessor beim schreiben/lesen einen Interrupt 13 (GPF=General Protection Fault = "Allgemeine Schutzverletzung") auslöst und Windows/Linux das Programm beendet... Es sei den du schreibst nen Treiber...

    blan schrieb:

    Direkter Hardware zugriff sollte doch mit linux möglich sein oder?

    im Kernel vielleicht 😉 Das ist aber für den Windowskernel auch der Fall...



  • Aber wieso willst du nicht die Linux/Windows API für sowas benutzen? Es sei den du willst ein Betriebssystem schreiben (was mir nicht danach aussieht 😃 )...



  • Hallo,

    nee kein Betriebssystem 🙂 Ich möchte eigentlich nur eine Zeit, aus meiner Anwendung heraus einstellen, zu welcher mein PC aus dem Standby wieder aufwacht.



  • eclere schrieb:

    Ich möchte eigentlich nur eine Zeit, aus meiner Anwendung heraus einstellen, zu welcher mein PC aus dem Standby wieder aufwacht.

    Ich wüsste nicht wie das mit der RTC/dem CMOS möglich sein könnte, aber da kann ich mich irren... Hast du da irgendwelche Informationen?

    Danke im voraus!


Anmelden zum Antworten