Guten Morgen,
ich nutze in meiner Homesteuerung ebenfalls einen DCF77 Empfänger in Verbindung mit einem DS1307.
die Initialisierung sieht so aus:
nun Du brauchst nicht jede Stunde den DS1307 neu zu stellen, da dieser sehr genau läuft, vorausgesetzt ist natürlich ein guter 32kHz Quarz am DS. Ich nutze dafür den DS32KHZ, diesen habe ich mir als Sample von Maxim schicken lassen, da ich ihn nicht in einem gängigen Shop gefunden habe.Code:Config Dcf77 = Pinb.6 , Timer = 1 , Inverted = 0 , Timer1sec = 1 , Update = 0 , Updatetime = 0 , Check = 1 , Debug = 0 , Gosub = Sectic 'Switchpower = 1 , Powerlevel = 1 , Powerpin = Pina.2 Config Date = Dmy , Separator = . 'deutsches Datumsformat Dim Dcf_buff(7) As Byte Dim Zeit_flag_set As Bit , Zeit_flag_get As Bit , Dcf77_set As Bit , Dcf_sig As Bit 'Variablen zum stellen der DS1307 Uhr und Systemuhr Dcf_sig = 0 Dim Ds1307_w_d(5) As Byte 'Schreibadresse &B11010000 Ds1307w = &HD0 Dim Ds1307_w_t(4) As Byte 'Schreibadresse &B11010001 Ds1307w = &HD1 Dim _day1 As Byte , _month1 As Byte , _year1 As Byte , _sec1 As Byte , _min1 As Byte , _hour1 As Byte 'Zeit-Variablen für die DS1307 Uhr
Ich stelle die interne Uhr vom DS einmal am Tag nach DCF. Dazu wähle ich mir eine Uhrzeit aus und filtere mir über das "Dcf_status.2 = 1" Bit, ob das empfangene Datenpaket in Ordnung ist und stelle dann die Uhr. (siehe Bascom-Hife)
Du kannst auch ,wie schon von Dir erkannt, die Setic Unterroutine benutzen. diese wird mit:
aufgerufen. Dort kannst Du eine Variable hochsetzen lassen, die dann im Hauptprogramm abgefragt werden kann.Code:Sectic: Incr Timecount1 Incr Displaytime Incr Tag_byte Return
Grüße Matthias







Zitieren

Lesezeichen