winjohan
When you think you have it dummy proof they come up with a better dummy!
Hallo
Ik ben nu geruime tijd bezig om een programma te maken voor de PIC 16F871 in PIC basic Het ontvangen en verwerken van het signaal gaat nu redelijk.
Ik wil echter het decoderen van de DCF in een interrupt onderbrengen
het probleem is echter dat ik de klok wil laten doorlopen als er geen signaal is (het bekende ontbrekende 59 bit). Dus ik 2 interrupt routines lopen. 1 keer het signaal op RB0 en een timer(1). echter wil dit samen niet lukken en zover ik kan beoordelen is het probleem dat het signaal van de DCF klok niet precies 1 seconden is.
bij het begin seconde 0 zet ik de timer ook op nul (timer zelf en de variabele) en vanaf dan ga ik er vanuit dat de beide gelijk lopen (vermoedelijk dus fout)
Heeft een van jullie dit ook al eens ervaren of wat is een betere methode om met beide interrupt te werken. voorbeeldjes in pseudo code welkom
BVD Johan
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
...is het probleem dat het signaal van de DCF klok niet precies 1 seconden is
Het detecteren van het begin van een seconde kan makkelijk enkele tientallen mS verschil in zitten...
Je moet gewoon de klok op een kristal laten lopen, en eens in de zoveel tijd de klok gelijkzetten met een ontvangen (geldige) tijd.
winjohan
When you think you have it dummy proof they come up with a better dummy!
Arco,
je hebt gelijk echter ik heb steeds bij elke seconde gecontroleerd.
Terwijl je dus eigenlijk seconde 0 gelijk moet zetten
ik ga hiermee verder en hoop morgen meer duidelijkheid te kunnen geven
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Een of een paar keer per dag gelijkzetten is wel genoeg. Liefst 's nachts, dan is er betere ontvangst.
Je moet ook wel checken of de tijd klopt.
(De ontvangen tijd moet vorige ontvangen tijd + 1 min. zijn)