Forum: Mikrocontroller und Digitale Elektronik Uhr Stellen & Wochentage bei I2C Uhr PCF8583


von Henning (Gast)


Lesenswert?

hi,

ich hab 2 fragen zur I2C Uhr PCF8583.

ich habe das ganze schon soweit am laufen, das ich auch die uhrzeit
stellen kann. erwische ich allerdings einen ungünstigen moment, so
scheint es mir, zählt der Sekunden Zähler nach 60 weiter bis er bei 99
den übertrag macht und wieder bei 0 anfäng. dabei erhöht er dann auch
"ordnungsgemäß" die minutenzahl. Wie kann ich umgehen? (nein, nicht
das erhöhen der minuten, das über 60 zählen ist gemeint :)

Beim Stellen Stoppe ich die uhr, übertrage die Bytes einzeln und starte
sie wieder.

Und noch eine frage:
Welchen wert muss ich zB am Montag in den Wochentag-zähler schreiben?
Völlig egal, weil der chip darauf ehh nicht achtet? fäng die woche bei
philips am Sonntag an oder ist Montag der erste Wochentag bei denen?

hoffe mir wird geholfen, den achja: Ich habe das datenblatt ausgiebig
durchsucht und habe dennoch nicht die antworten gefunden. :(

von ispodvala (Gast)


Lesenswert?

Hallo,
ich bin auch dabei, eine I2C-Uhr zu implementieren (allerdings den
PCF8563, wegen den Schaltjahren). Und erst noch beim
Loeten/Dattenblaetter lesen.
Das mit den 99 Sekunden ist mir komisch, hoffe, dass ich das Problem
nie bekomme :)
Aber der Montag ist amerikanisch der 2. Tag der Woche. Das steht z.B.
in der Application Note zu den RTCs von Philips. Vielleicht auch 'nen
Reinschau wert?
http://www.semiconductors.philips.com/acrobat/applicationnotes/AN_pcf8563-73-83-93_real_time_clock.pdf

von Henning (Gast)


Lesenswert?

Hey danke für das appNote und die info, das hilft schonmal! hab mich von
den alarmzeiten wieder abgewand, weil nix funktionierte... das blatt
sollte aber helfen.

Tja, mit den 99 Sekunden: wenn ich die uhr anhalte, den wert
einspeichere und dann per resettaster die ganze schaltung (ausser Uhr)
zurücksetze wird die uhr von meinem avr neu initialisiert und auch
wieder gestartet. das hilft dagegen wohl. aber toll ist es nicht.

die schaltjahre kann der pcf8583 auch ab. die kommen alle 4 jahre vor.
und da der chip nur 2 bits für das jahr verwendet muss man alle 4 jahre
eine Versatz auf die jahreszahl rechnen (leider lästig). Die
Tageszähler berücksichtigen das schaltjahr auch (Februar mit 29 Tagen
nur wenn Jahreszähler = 0)

Hab den gewählt, weil ich nur diesen kannte, und nun kommt mir der
Interne eeprom zugute...

von Joerg Wunsch (Gast)


Lesenswert?

> achja: Ich habe das datenblatt ausgiebig durchsucht und habe dennoch
> nicht die antworten gefunden.

Wirklich?

7.11 Initialization

[...]

It is recommended to set the stop counting flag of the control/status
register before loading the actual time into the counters. Loading of
illegal states may lead to a temporary clock malfunction.

(Hab's noch nicht probiert, aber habe den Chip auch hier rumliegen,
daher interessiert mich das schon.)

von Henning (Gast)


Lesenswert?

(ich muss mich ja nich rechtfertigen, aber...)
...ich hab die uhr ja gestoppt vor dem einschreiben der werte.
und das die einzuschreibenen werte richtig wahren bin ich mir recht
sicher.

Aber gerne werd ich´s nochmal probieren.

wo es doch jetz in mode gekommen ist immer auf das datenblatt und
google zu verweisen.

von Joerg Wunsch (Gast)


Lesenswert?

> ...ich hab die uhr ja gestoppt vor dem einschreiben der werte.

Hmm, ja, das lese ich jetzt auch eben nochmal.  Allerdings verstehe
ich dann das ,,erwische ich einen ungünstigen Moment'' nicht.  Wenn
die Uhr gestopt ist, sollte der Moment doch egal sein.

von Henning (Gast)


Lesenswert?

ja, aber mal zählt er weiter (nach 59), mal nicht...

aber ich probiere das nochmal aus. da bin ich dochmal gespannt.
scheint als wenn das starten nach dem einschreiben des wertes zu früh
ist.

von Joerg Wunsch (Gast)


Lesenswert?

Hmpf, jetzt habe ich aus Versehen den alten Kommentar nochmal
abgeschickt. :(

Nee, so recht verstehe ich das dann aber auch nicht.  Das Datenblatt
erwähnt auch nicht die Möglichkeit, daß diese Zähler über 59 hinaus
arbeiten könnten.

Denke mal eher andersrum: nach dem Stoppen noch einen Moment warten.

von Henning (Gast)


Lesenswert?

programmiere gerade mein menue, darüber will ich die uhrzeit auch
stellen können. mal gucken wie ich das mache, dann werd ich´s nochmal
probieren. und natürlich hier berichten

von ispodvala (Gast)


Lesenswert?

>und natürlich hier berichten

vielleicht auch mit Code?

von Henning (Gast)


Lesenswert?

ich hab´s grad nochmal unter die lupe genommen und ausprobiert:
warscheinlich glaubt mir jetz keiner mehr :) aber ich hab´s nich auf
die reihe bekommen, den fehler mit dem über 59 zählen zu provozieren...
wer weiss warum..
naja hat ja auch was gutes, eine sache weniger um die ich mich kümmern
muss.

i2c code meinst du?
oder den wie ich die uhr ansteuere? das kann ich wohl auszugsweise aber
das wird dir nich viel sagen, so wie das ganze in mein gesammtes
projekt materialisiert ist. :)
(jaaa bald hab ich´s geschaft! mein erstes projekt: eine
Heizungssteuerung mit nun 1525 Befehlswörtern... und sie läuft!)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.