www.mikrocontroller.net

Forum: PC-Programmierung Wake-Up Zeit aus BIOS auslesen


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

im BIOS kann man ja einstellen, dass der PC zu einer bestimmten Zeit 
wieder aufwachen soll.
Ich habe schon die Funktion SetWaitableTimer gefunden, mit der man die 
Aufwachzeit ins BIOS schreiben kann.
Nun meine Frage:
Gibt es eine Möglichkeit diese Zeit wieder auszulesen?

Grüße
Peter

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das würde mich auch interessieren.
Ich habe nur Bedenken dass dies überhaupt möglich ist,
denn die von Dir angesprochene Funktion ist ein
Windows-API-Aufruf, und wenn ich davon die Beschreibung
lese, handelt es sich eher um etwas, das nichts mit dem BIOS
zu tun hat.
Lasse mich aber gerne belehren...

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnten die Alarm-Register im CMOS sein.

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahja, danke für den Tipp.
Gibt es da irgend eine allgemeingültige Adresse
oder macht da jeder BIOS-Hersteller was er will ?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie muss es ja was allgemeingültiges geben. Man kann ja im Windows 
Taskplaner den Haken setzen, er soll den PC reaktivieren, um die Aufgabe 
auszuführen. Das klappt auf nahezu allen Mainboards. Da müsste man mal 
suchen. Macht ja z.B. der DVBViewer auch, wenn man eine Aufnahme 
programmiert.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gibt es da irgend eine allgemeingültige Adresse
>oder macht da jeder BIOS-Hersteller was er will ?

Gibbet! - steht ziemlich am Anfang. Habe gerade nicht das Datenblatt 
vorliegen, sollte aber kein Problem zu finden sein.

Die ersten 32/64 Bytes sind halbwegs gut genormt.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da steht's mit drin:
http://www.codepedia.com/1/CMOS_C

Habe gerade nichts Hübscheres gefunden.

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe z.B. Datenblatt vom DS12887

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten.
@Bobby:
Wenn ich es richtig verstanden habe ist es zum einem Timer, der 
irgendwie
im CMOS gesetzt wird, und somit auch den PC aufwecken kann. (Habe ich 
aus dem Quelltext zur TV-Software Mediaportal)

Danke Kai für den Link. Weißt du zufällig auch, wie ich den eingebunden
Assemblercode übersetzt bekomme? Verwende Dev-C++.
Erlaubt XP überhaupt noch den Zugriff direkt auf die Hardware, wie 
Win95?

Gruß
Peter

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, unter Visual Studio lässt sich die Funktion (aus: 
http://www.codepedia.com/1/CMOS_C) übersetzten.
Aber wie ich mir gedacht hab kommt beim Ausführen schon beim
"cli" die Fehlermeldung "Privileged instruction".
Kann man sich da die Privilegien irgendwie besorgen?
Oder müsste ich dazu einen Treiber schreiben?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte mich schon gewundert ;)

Als ich das letzte mal direkt den CMOS Baustein angesprochen habe, war 
das unter DOS und in Assembler :)

Ich denke mal selbst wenn du das CLI hinbekommst, wird dich Windows kaum 
direkt an die I/Os lassen. Zum Einen weil das auch privilegierte Befehle 
sind, zum Anderen wird ein bestehender Prozess die I/Os gepachtet haben.

Das wiederum heißt, dass du den verantwortlichen Prozess nett um die 
Ausführung deines Wunsches bitten kannst, wofür wiederum die Windows API 
herhalten müsste. An dieser Stelle hört mein Halbwissen auf ;)

Blätter dich mal durch die MSDN, wie man unter Windows an die gesuchten 
Funktionen kommt.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist DOS-Code, der läuft wg. direkter Hardwarezugriffe nicht unter 
einem Betriebssystem wie Windows.

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man braucht also eine Kernel-Bohrmaschine wie Porttalk.

Autor: Bernhard Walle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter Linux gibt's dazu das Tool „nvram-wakeup“
(http://sourceforge.net/projects/nvram-wakeup). Ein Blick in den 
Quellcode
lohnt sicherlich, auch wenn man Windows verwendet.

Letztlich ist die Geschichte aber sehr BIOS-spezifisch.

Autor: Outi Outlaw (outlaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmm, ich hätte jetzt vermutet, dass get das Gegenstück zu set ist, 
also

GetWaitableTimer

Zumindest sind die Chancen hoch ....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.