INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Benno, Ein kurze Frage: Auf welche Adresse hast Du den Uhrenbaustein gelegt ? Kurz: Liegt der Pin A0 auch an 5V ? Ansonsten wird es nicht funktionieren. Liefert das IC am INT-Ausgang ein 1Hz-Signal ? Wenn nicht, hat sich der Uhrenbaustein aufgehängt oder ist defekt. Trenne einmal kurz die komplette Versorgung des ICs (auch die gepufferte). > sys WrByteBReg,0,0,PCF8583addr 'reset Hier setzt Du das Control/Statusregister auf 0. Das ist soweit richtig, wenn keine Alarm-oder Timerfunktion (z.B. für einen Watchdog) genutzt werden soll und ein 32,768kHz Quarz angeschlossen ist. > datalo=((minute / 10) shl 4) or (minute mod 10) > datahi=((hour / 10) shl 4) or (hour mod 10) > sys WrWordBReg,data,3,PCF8583addr 'Minuten & Stunden speichern Das stimmt auch. > sys WrByteBReg,64,0,PCF8583addr'latch Hier schreibst Du den Werst 0 in Byte 64 des UhrenRAMs > sys RdWordBReg,3,PCF8583addr 'read register 3+4 > data=pop Hier liest Du die Register 3 und 4 aus. > sys WrByteBReg,0,0,PCF8583addr 'start Hier schreibst Du wieder den Wert 0 und das Statusregister. Das brauchst Du nicht ständig machen, außer, Du willst die Sekunden und Minuten-Flags löschen. > print "read from register",data Hier gibst Du den vorher ausgelesenen Wert für das Minuten und Stundenregister aus. In Deinem Fall sollte 11271 für die gespeicherte Zeit 7:44 rauskommen. Du mußt die gelesenen Daten erst zerlegen, um diese wieder in korrekter Form zu haben: sys RdWordBReg,3,PCF8583addr 'read register 3+4 data=pop datalo=(datalo shr 4)*10 + datalo and &hF datahi=(datahi shr 4)*10 + datahi and &hF print "Minute: ";datalo,"Stunde: ";datahi MfG André H. |
Antwort schreiben |