Real Time Clock

OP #1915428
Lesenswert?
• ▲
▼
@ vza
im datanblatt ist unter timer folgendes aufgelistet:

TCON      Timer 0/1 Control Register
TH0       Timer 0, High Byte
TH1       Timer 1, High Byte
TL0       Timer 0, Low Byte
TL1       Timer 1, Low Byte
TMOD      Timer Mode Register

wenn ich das richtig erkannt habe sind das nur Timer 0 und 1

und welche üblichen quellen meinst du? habe noch nie eine RTC 
programmiert.


@ hacky

ich habe vor die RTC über RS232 auf den PC zu übertragen und auf dem 
Bildschirm anzuzeigen.

das senden und anzeigen ist kein problem, ich weiss nur nicht wie ich 
die RTC hinkriege!

mfg marco
#1915433
Lesenswert?
• ▲
▼
Marco G. schrieb:

> das senden und anzeigen ist kein problem, ich weiss nur nicht wie ich
> die RTC hinkriege!

Eine RTC, also eine Uhr ist auch nichts anderes als ein Zähler, der 
still und heimlich vor sich hinzählt.
Nur das er bei 60 wieder auf 0 zurückgesetzt wird und ein 'Übertrag' in 
die nächste Stelle erfolgt.

Wir nennen das dann nicht Einer, Zehner und Hunderter, sondern Sekunden, 
Minuten und Stunden. Aber das Prinzip ist völlig gleich.

Wenn du also einen Timer so aufsetzen kannst, dass er dir regelmässig, 
sagen wir mal 100 mal in der Sekunde, eine Fúnktion aufruft, dann zählst 
du in der Funktion die Aufrufe mit und beim 100ten Aufruf ist dann 1 
Sekunde vergangen. Nach 60 Sekunden 1 Minute. Nach 60 Minuten 1 Stunde. 
Nach 24 Stunden 1 Tag, nach 28/29/30/31 Tagen (ja nach aktuellem 
Monat/Jahr) ein Monat und nach 12 Monaten 1 Jahr.

Einfach nur Zählstufen.
Alles steht und fällt mit dem kleinsten Takt. Wenn deine 100 (oder 
wieviele es dann rein rechnerisch tatsächlich sind) Funktionsaufrufe 
nicht stimmen, stimmt auch der Rest nicht.

Das bedeutet aber auch, das dir die Auflistung der Register nur bedingt 
weiterhilft. Du musst im Datenblatt nachlesen, wie du es hinkriegst, 
dass dir der Timer eine bestimmte Funktion regelmässig aufruft. 
Regelmässig alleine reicht noch nicht. Der Genauigkeit zuträglich wäre 
es, wenn man das auch noch so hintricksen kann, dass in 1 Sekunde exakt 
eine ganze Zahl Aufrufe erfolt. Wie groß diese ganze Zahl ist, spielt 
dann wieder weniger die Rolle.
OP #1915441
Lesenswert?
• ▲
▼
da wäre es doch am besten einen 8-Bit timer im reload mod einzusetzen 
und das Hauptprogramm immer nach 0.1ms (von 55 auf 255 = 200; 
200/2'000'000 = 0.0001) durch interrupts zu unterbrechen und einen 
conter hochzuzählen bis 10'000. Denke dass ich da eine sehr genaue 
sekunde bekomme, oder habe ich etwas vergessen in die berechnung 
einzubeziehen?
#1915468
Lesenswert?
• ▲
▼
Das wirklich Muehsame an RTCs ist eine Gangdifferenz zu anderen Uhren. 
daher sollte man die Sekunde genau hinkriegen. Eine Interne Uhr hat nun 
einfach nicht diese Stabilitaet. Ohne Quarz ist da nichts. Von den 
guenstigen Quarzen ist der 32kHz der Genaueste. 10ppm sind da Standard.
Gast #1915481
Lesenswert?
• ▲
▼
Warum ein externes IC, wenn er anscheinend eh noch Ressourcen in seinem 
Controller zur Verfügung hat? Außerdem kommt dann die Kommunikation mit 
dem externen RTC dazu, die braucht ja auch Ressourcen und vorallem Pins 
(die vielleicht nicht mehr verfügbar sind).
#1915651
Lesenswert?
• ▲
▼
Marco G. schrieb:
> Weiss jemand wie ich eine RTC in C auf dem uC SAB-C517A mit internem
> 2MHz Takt Programmieren kann?
>
> Macht man das mit Timern?

Ja.
Am besten geht das mit Timer 2 im Reload-Mode (C517a Users-Manual S93).
Dann im Timerinterrupt noch eine Variable runterzählen, um den 
Sekundentakt zu erhalten.
Dann Sekunden 0..59, Minuten 0..59, Stunden 0..23 usw. zählen.


Peter

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.