Hallo Trexis5,
so, habe alles gesichtet:
1. Dcf77_soft.lib:
Scheint alles ok, PD2 als Eingang eingetragen.
2. Dcf77_2_soft.bas:
Die Zeile:
"Disable Timer1 'zunächst ausschalten" ... löschen!
Dafür:
"Enable Interrupts
Enable Timer1" ... einfügen!
3. M32.bas:
Zeigt ja aktuell nichts außer deiner LED an PB0 an, weil die Sub Showtime in der DO-LOOP gar nicht aufgerufen wird.
Ich würde nur ...
Code:
If Sekunde <> _sec Then
Cls
Locate 1 , 1 'Zeile 1:
Lcd Time$ ; " " 'Uhrzeit
Sekunde = _sec
End If
... in die DO-LOOP packen bis alles läuft.
Der Teil ...
Code:
'Wenn Uhr oder Datum inaktuell, dann nach DCF stellen:
'Timer0 ist nur aktiv, solange DCF-Empfang läuft!!!
If Dcfstatus.5 = 0 Or Dcfstatus.6 = 0 Then
Dcfstatus.7 = 1
Enable Timer0
Else
Dcfstatus.7 = 0
Disable Timer0
End If
... muss ganz raus, weil der Timer nicht abgeschaltet werden kann (sowieso nicht Timer0!)
Mehr fällt mir spontan nicht auf!
Zumindest müßte die Uhrzeit jetzt weiter laufen (ohne DCF-Synchronisierung).
Schreib doch 'mal, wie's klappt.
Wenn's nicht klappt:
1. Timer1 noch für andere Zwecke benutzt?
2. Andere Interrupt-lastige oder Timer-basierte Dinge im Rest deiner Software?
3. Wirklich externe 16 MHz oder interner Teiler? Fusebits korrekt?
4. DCF-Empfänger arbeitet störungsfrei?
Gruß Dirk
Lesezeichen