Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: RB PCF8583 Zeit setzen Kategorie: Programmierung (von André H. - 7.02.2006 23:20)
Als Antwort auf RB PCF8583 Zeit setzen von Martin - 6.02.2006 17:18
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Martin,

> Es ist mal wieder soweit.
> Ich suche eine einfache Möglichkeit das PCF Uhrenmodul am Reglerboard zu setzen.
> Im Moment gehe ich da so vor.
>
> system.settime(14,19, 00);
> Systemzeit setzen und über die Timevariable zum PCF senden.
> pcf8583.setTime(global.time); //globaltime = systemzeit
> pcf8583.syncpcf();  
>
> Da die Zeit über die Tastatur verstellt werden soll, müssen Stunden ,Minuten, Sekunden
> separat verstellt werden. Vermutlich lä�t sich das eleganter lösen , aber ich habe noch keinen Plan
> wie die Tastatureingabe am besten zu bewerkstelligen ist.
>
> Setzen des Sommerzeitflags.
>
> Laut Modulbeschreibung des PCF befindet sich an Adresse 0x11 das Sommerzeitflag, ich nehme mal an
> daÃ? dieses Flag von Hand verstellt werden muÃ?.
> Bei auslesen der  Adresse 0x11 bekomme ich den Wert 255
> oder mit pcf8583.getDST() â??1 , also Sommerzeit, dieser Wert läÃ?t sich mit ..
> pcf8583.setDST(0); // 0 = Winterzeit
> pcf8583.syncpcf();
> ... nicht überschreiben.
> Meine Initparameter pcf8583.init(1,1,0,20,1);

Wenn Du syncpcf() aufrufst, wird auch das DSt-Flag der Uhrenbausteins
mit dem der CC2 abgeglichen.
Da kannst Du natürlich vorher setzen, was Du willst. ;-)
Auf der CC2 wird das DST-Flag mit dem Stellen des Datums entsprechend gesetzt.
Während des Betriebs sollte man mit system.setDST() periodisch (z.B. 1x am Tag)
prüfen, ob das Flag noch korrekt gesetzt ist, oder eine zeitumstellung erforderlich ist.
(Das macht dann bereits system.setDST() )

Der externe Uhrenbaustein dient eigentlich nur als Backup für die CC2-interne Uhr.
Dementsprechend solltest Du immer diese setzen und dann den Uhrenbaustein syncronisieren.

Prüfe einmal das Datum, wenn dieses auf den Sommerzeitbereich fällt,
erklärt esdie Rückgabe von getDST().
Prüfe aber auch den Wert von system.DST(). Dieser mu� in diesem Fall
dasselbe zurückgeben.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: