DCF-77 mit Bascom 1.11.8.6
Hallo zusammen,
ich habe mir gerade mal testweise die neue DCF-Routine angesehen.
Programm wie in der Hilfe, config so
Config Dcf77 = Pind.1 , Debug = 1 , Inverted = 1 , Check = 0 , Update = 1 , Updatetime = 3 , Switchpower = 1 , Powerpin = Pind.4 , Powerlevel = 1 , Timer1sec = 1 , Timer = 1
Wenn ich mir die Impulslängen ansehe, dann kommt fast immer 4 (für eine 0) oder 8 (für eine 1).
Manchmal allerdings kommt auch 3 oder 7. Beide führen dann zu einer 0 im Ergebnis an einer Stelle, wo bei der 7 wohl eine 1 sein sollte. Die Zeit verwirft die Routine dann, wohl wegen Parity Fehler.
Die 7 kommt so oft, dass es manchmal 10 Minuten dauert, bis er die Zeit richtig gelesen hat. Die Checks musste ich dabei abschalten, sonst schafft es die Routine überhaupt nicht. Andere Werte von Secondticks machen keinen Unterschied.
Kann man da irgendetwas dran einstellen? Ich finde nichts und habe schon alles mögliche ausprobiert.
Wie kann ich sowas wie die alte Sectic isr benutzen um einmal pro Sekunde etwas zu tun? Timer1sec verstehe ich nicht.
Danke für eure Hilfe
Gruß
Rolf
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Ralf,
Ich hänge Dir eine neue Version der DCF77.LBX an mit welcher SECTIC funktionieren sollte. Die Konfiguration erfolgt aber nicht in der CONFIG - Zeile, sondern bis zur endgültigen Implementation in den Compiler bitte die Zeile
Const _sectic = 1
einfügen.
Willst Du SECTIC nicht verwenden, musst Du vorerst mit dieser LBX-Version auf Const _Sectic = 0 ändern, da es ansonsten einen Error gibt.
Vielleicht kannst Du noch Deinen Code posten, der manchmal 40 oder 50 ticks erzeugt.
Benenne die Datei dcf77.txt in dcf77.lbx um und kopieren diese in den LIB Pfad. (Mache vorher eine Sicherungskopie deiner bisherigen dcf77.lbx)
Die Änderung habe ich noch nicht gründlich getestet, Test-Report sind daher willkommen.