Zitat von
Dominik009
Gibt es sonst vieleicht noch ideen und möglichkeiten?
Hallo Dominik,
bevor ich zusätzliche Hardware anschließe, würde ich es erst mal mit den Bordmitteln probieren und sehen, welche Genauigkeit damit zu erreichen ist. Auch mit einem normalen Quarz kommst du bei 50ppm auf max 4 sec Abweichung pro Tag, macht 2 min / Monat oder 12min im halben Jahr. Dann steht die Sommerzeit Umstellung an, wo du eh die Zeit neu setzen musst
Also würde ich mir einen Timer nehmen, der in bestimmten Interval überläuft. Daraus leitest du dir die Sekunden ab.
Z.B. so
Code:
$crystal 16000000
Config Timer0 = Timer , prescale=256, clear_timer=1
Compare0=249 'macht 250 Timer-Takte, also 16.000.000/256/250=250, also bei 250 ist eine Sekunde rum
On Compare0 sek_isr
...
Enable Compare0
Enable Interrupts
Do
If sek_flag=1 then
'hier zählst du die Sekunden, Minuten, Stunden, Tage usw. hoch
'und machst deine Zeitvergleiche, schaltest Ausgänge usw.
'und du zählst eine Variable hoch bis 36, dann änderst du den PWM Wert entsprechend ab
sek_flag=0
End If
...
Loop
End
sek_isr:
Incr 4ms
If 4ms = 250 Then
sek_flag=1
4ms=0
End If
return
Da wartet dann nichts mehr.
Wenn das nicht genau genug ist, kannst du den Timer2 auch asynchron über einen 32KHz Quarz an den TOSC Eingängen betreiben. Diese Quarze haben in der Regel ein max. Abweichung von 20ppm, sodass du unter eine Minute im Monat kommen kannst.
Lesezeichen