--- EDIT -----
Hab die Posts oben glatt übersehen oder wurden eben erst hinzugefügt. Werde die neue Lib ausprobieren.
Ja, BCD und DEC. Bin ich auch schon drübergestolpert.
Grüße Eisbaeeer
Druckbare Version
--- EDIT -----
Hab die Posts oben glatt übersehen oder wurden eben erst hinzugefügt. Werde die neue Lib ausprobieren.
Ja, BCD und DEC. Bin ich auch schon drübergestolpert.
Grüße Eisbaeeer
@Knickohr:
Ja, das war alles. Dadurch wird auch das Jahr noch durch die BCD-DEZ-Umwandlung gejagt. Alle anderen Werte müssen da schon durch.
@Eisbaeeer:
EDIT: Ok, viel Spaß beim Testen!
Gruß Dirk
Hi. jep, bin ganz gelassen. Großes Lob an deinen Code. Ist sehr übersichtlich geschrieben und durchaus nachvollziehbar. Alles kommentiert. Kann man sich als Vorbild nehmen!Zitat:
Zitat von Dirk
Danke nochmal für deine Mühe!
Grüße Eisbaeeer
Jepp, funzt !
Danke nochmal.
Thomas
Hallo
Bei mir findet er die Einsprungmarke dcf77_init nicht mehr. Ich hab die Lib über diese Einsprungmarke nach dem rn-wissen wiki damals programmiert.
Includiert sind ist die dcf77_softwareuhr.bas (wie im Anhang). Die LIB ist im Bascom eingespielt. Aufgerufen wird das ganze über den Timer:
Spiele ich die "alte" lib ein, funktioniert der Aufruf der dcf77_init.Code:'------[ Interrupt Routine DCF77 ]----------------------------------------------
Tim2_isr:
Timer2 = Startwert
Call Dcf77_init
Return
Sehr merkwürdig.
Grüße Eisbaeeer
Hallo Eisbär,
der Init passiert ganz am Anfang von Deinem Programm. Der Timer-Interrupt macht nur einen Call Dcf77
ThomasCode:...
'Const Startwert = 61 ' für Timer 8-bit
Const Startwert = 40536 ' für Timer 16 bit
...
Declare Sub Dcf77
Declare Sub Dcf77_init
'Declare Sub Dcf77_soft
...
Config Timer4 = Timer , Prescale = 8 ' Timer für 40Hz (25ms) 8-bit
'Config Timer4 = Timer , Prescale = 1024 ' Timer für 40Hz (25ms) 16-bit
Timer4 = Startwert
'On Timer4 Timer_dcf77 ' Überlauf alle 25ms, funktioniert nicht !
On Ovf4 Timer_dcf77 ' Überlauf alle 25ms
...
Beginn: ' Wird angesprungen bei komplettem Reset
Disable Timer4 ' Timer für DCF77 noch disablen
Call Dcf77_init ' DCF77 initialisieren
...
Enable Timer4
...
Timer_dcf77: ' Timer zur DCF77-Decodierung
Timer4 = Startwert
Call Dcf77
Return
Hallo
Ich glaube es selber nicht. Den genauen Fehler habe ich nicht gefunden. Aber jetzt funktioniert die LIB. Beim code kopieren von dem Thread ist wohl irgendwo ein Fehler unterlaufen. Um den Fehler einzugrenzen hab ich die "alte" Lib hergenommen und nur die paar Zeilen ergänzt und siehe da, sie funktioniert wieder.
Ich hab die Dateien aber mit einem Programm verglichen. Kein Unterschied zu finden.
Viele Grüße Eisbaeeer
Hallo Eisbär,
ich hatte auch einen seltsamen Effekt ! Ich habs aber genau umgekehrt gemacht. Ich wollte die neuen Zeilen in die alte LIB kopieren, danach gings nicht mehr.
Nun gut, dann habe ich eben die neue LIB genommen und meine Anpassungen für den PIN und PORT neu gemacht. Alles OK; die LIB tut wieder seit Vorgestern Abend.
Thomas
Ich hatte so ein Phänomen schon einmal. Das liegt meist an den PHP Code Srcipten der Foren. Könnte mal jemand die funktionierende LIB als Anhang hier posten. Der Code compiliert jetzt zwar bei mir, aber irgend wo ist noch der Hund drin. Ich bekomme bis dcfstatus.4 alle gesetzt, dcfstatus.6 , 6 kommt dann nicht.
Wäre mir eine Hilfe. Danke.
Aber klar doch, allerdings ist die LIB schon von mir auf meine Ports und Pins angepaßt worden ;)
Thomas