Hallo,
hat jemand eine Idee was man machen kann wenn bei einem PC die Hardware
Uhr um einiges zu schnell läuft?
Es ist ein standalone System mit DOS 6.22 ohne Netzwerk
Mainboard: winnet g150 (VIA CPU onboard)
Die Bios Batterie wurde schon erneuert ohne Erfolg.
Der PC läuft 24x7. In 2 Tagen geht die Uhr um 5 Minuten vor.
Er hat keine klassische RTC mehr (DIL-Sockel)
Stimmt das wäre auch eine (Software)-Lösung.
Eine Hardwarelösung währe dann vielleicht wenn ich den kleinen runden
Quarz durch einen anderen mit theoretisch gleicher Frequenz tausche in
der Hoffnung das der genauer läuft?
Antikuser schrieb:> hat jemand eine Idee was man machen kann wenn bei einem PC die Hardware> Uhr um einiges zu schnell läuft?
Korrigieren, was denn sonst?
Aber vorher erstmal überlegen: Wie genau wird die RTC eigentlich
genutzt? Ist da wirklich nur das OS dran, oder gibt es zusätzliche
Programme, die (eventuell falsch) darauf zugreifen?
> Der PC läuft 24x7. In 2 Tagen geht die Uhr um 5 Minuten vor.
Das sind ca. 0,2% Fehler. So schlecht ist KEIN Uhrenquarz, nichtmal
näherungsweise. Ergo: Da greift garantiert irgendein völlig idiotisch
programmiertes Programm falsch auf die RTC zu und bringt sie damit aus
dem Konzept.
Eventuell eins deiner Eigenprodukte? Oder eventuell auch ein
vorsteinzeitlicher NTP-Client oder irgendwas in der Art?
Einzige Alternative: Die Hardware ist schlicht kaputt. In diesem Fall
löst nur ein kühner Schwung->/dev/tonne das Problem...
Ah, jetzt kommen die guten... äh Tipps
c-hater schrieb:> Das sind ca. 0,2% Fehler. So schlecht ist KEIN Uhrenquarz
Fall er kaputt ist?
c-hater schrieb:> Eventuell eins deiner Eigenprodukte?
Nein, TFX und GP ;)
c-hater schrieb:> Oder eventuell auch ein> vorsteinzeitlicher NTP-Client oder irgendwas in der Art?
Ohne LAN?
siehe:
Antikuser schrieb:> ohne Netzwerkc-hater schrieb:> löst nur ein kühner Schwung->/dev/tonne das Problem...
Unter DOS nicht verfügbar.
Garfield schrieb:> Turbo-Knopf herausdrücken!
Hat er nicht
Planlos schrieb:> Kleines TSR schreiben, das alle 10 Stunden die RTC um 1 Minute> zurückdreht?
Richtig, aber wer weiss überhaupt noch, was ein TSR ist, vom
Programmieren mal ganz abgesehen? Aber wenn der TO das kann, Ok.
Für DCF77-Empfänger wird man auch nur noch Windows-Treiber bekommen.
Georg
Max M. schrieb:> Die Systemzeit oder wirklich die RTC?
Danke der Tipp war super :)
Es ist tatsächlich so das nur die Systemzeit vorgeht.
Im Bios passt Uhr noch.
Wird also in der Software die Zeit selbst "gebildet"?
Eine Abfrage mit time bringt also die falsche Zeit obwohl im Bios noch
die richtige steht. Das war mir neu, gibt es dagegen Abhilfe?
Georg schrieb:> Für DCF77-Empfänger wird man auch nur noch Windows-Treiber bekommen.
braucht man nicht, Sourcen gibt es hier und eine kleine TSR unter Dos
ist ja so unmöglich nicht, ich gestehe meine liegt 16 Jahre zurück unter
QC war das nicht so schwer und wenn ich die HW erkannt habe gibt es
einen parallel Port, der könnte als Input für DCF77 auch genommen
werden.
habe mal mein altes QC reingepackt, läuft auch unter anderen C Compiler
ähnlich
TSR Routine die alle Minute die aktuelle Uhrzeit im Alarmregister der
RTC sichert
dort könnte auch DCF gesammelt werden oder die Uhr korrigiert.
Antikuser schrieb:> s ist tatsächlich so das nur die Systemzeit vorgeht.> Im Bios passt Uhr noch.>> Wird also in der Software die Zeit selbst "gebildet"?
DOS hat seine eigene Zeit die von der Prozessorfequenz abgeleitet wird.
Und die Prozessorfrequenz ist nun mal nicht sehr genau.
Wenn ich mich recht erinnere gibts da Programme die die Systemzeit mit
der RTC synchronisieren. Aber DOS ist bei mir lange her.
> DOS hat seine eigene Zeit die von der Prozessorfequenz abgeleitet wird.
Nein, der Timer wird vom 14,31..MHz-Systemtakt bzw. einem Teiler davon
gespeist. Alle ~18ms kommt ein Interrupt (Zählerunterlauf), mit dem das
BIOS einen Softwarezähler hochsetzt.
Jetzt kann es sein, dass ein TSR oder auch Anwendungsprogramm geladen
ist, dass sich einen anderen Takt als 18ms wünscht. Dieses muss den
Interrupt selber abfangen und den BIOS-Handler in entsprechenden
18ms-ähnlichen Zeitabständen aufrufen. Wenn dessen Berechnungen nicht
passen, dann driftet die Zeit.
Oder der Quarzoszillator 14,xx MHz ist einfach ungenau geworden...
Max M. schrieb:> DOS hat seine eigene Zeit die von der Prozessorfequenz abgeleitet wird.
Vor AT hatte ein PC garkeine RTC, da gab es Zusatzkarten mit RTC und 512
kB RAM (für die Jüngeren: wirklich kB). Daher berechnet DOS seine eigene
Zeit, ohne RTC muss man Datum und Zeit nach dem Einschalten eingeben.
Allerdings sind sicher nicht mehr viele IBM-PCs/XTs in Betrieb.
Georg
> Daher berechnet DOS seine eigene Zeit, ohne RTC muss man Datum und Zeit nach dem
Einschalten eingeben.
Die Zeit muss man immer eingeben, wenn keine config.sys oder
autoexec.bat vorhanden ist.
Der Ur-PC (ohne RTC) hatte schon einen Zeitzähler im BIOS implementiert.
Dieser wird durch die RTC nur einmalig auf einen entsprechenden Stand
gebracht. DOS berechnet dann die aktuelle Zeit aus diesem Zähler.
User schrieb:> DOS berechnete dann die aktuelle Zeit aus diesem Zähler.
Das kann schon sein. Andere laufende Programme konnten aber auch durch
ihren "Zeitverbrauch" die Berechnung etwas durcheinanderbringen. Heute
sollte der Antikuser mal überlegen, ob in letzter Zeit zufällig ein
===>"unnützes" Programm entfernt wurde, wenn jetzt die Uhr schneller
läuft.