Op 4 januari 2011 16:57:42 schreef K-4U:
de 'main' loop zal het display verversen.

Aie, moet je juist nièt doen.
Bij gemultiplexte displays heb je een vaste verversingfrekwentie nodig die je niet kan garanderen in de main loop (door delays in het scannen van invoer (toetsen), key debouncing, ADC conversie e.d.).
Het resultaat kan, en zal, dan onregelmatige flikkering tot zelfs haperen van de displaymultiplexing betekenen.

Ik heb gekozen om 99% van de acties in de interruptroutine uit te voeren.
Ik weet wel dat men lange interruptroutines meestal afraadt maar ik had eigenlijk weinig keus en als je oplet vormt dit geen probleem.
Bij een interrupt om de 2msec kan ik bij 4MHz systeemclock op een PIC16F grofweg 2000 instructies in ASM uitvoeren vooraleer de volgende interrupt (Timer0 overflow) optreedt.
Mijn volledig LEDklok programma is slechts ongeveer 1100 ASM-instructies lang, initialisatie inbegrepen (het grote voordeel van programmeren in assembly ;))(*).
Daarin zit ook de main loop (een paar 10-tallen instructies: LDR ADC-conversie en PWM-sturing, scannen van 2 toetsen/debouncing en oproepen van de datum/tijd scrolling subroutines indien nodig).
Al de rest wordt via subroutines tijdens de interrupt afgehandeld:
- Updaten van het display (multiplexing, elke 2msec).
Om de 4msec:
- Updaten van de standalone klok/kalender.
- Ontvangen/decoderen van de DCF77 pulsen/data.
- Updaten van de standalone klok met de DCF77 waarden indien geldig.
- Afhandeling van DCF77 errorcondities.
- Updaten van de statusLEDs (DCF77 beat, DCF77 OK, DCF77 Error, Standalone).
- Aanpassen van het uur in de CET+1 en CET-1 tijdzones t.o.v. de CET DCF77 tijd (wegens mogelijke berekeningsproblemen tijdens schrikkeljaren (29 februari) en zomer/wintertijd omschakelingen om 02:00 doe ik geen update van datum en uur van de standalone klok/kalender met de DCF77 tijd/datum tussen 22:59 en 03:01 uur. Seconde 00 van elke minuut blijft wel gesynct met DCF77).

Ik maak zéér veelvuldig gebruik van flags (of semaforen) om events uit de verschillende subroutines door te geven aan de andere subroutines.
De executie van de interruptroutine neemt maximum 1msec in beslag, de resterende 1msec tot de volgende interrupt is vrij voor de main loop.

Bij je linkje staat ook een andere dcf77 module vermeld.. Helaas kan ik hier niets meer vinden op de site.. Heb jij meer geluk gehad?

Bedoel je Meinberg?
Zij hebben de EMP226 DCF77 receiver.
Je hebt er wel nog een apart te bestellen antenne bij nodig.

@Henk424: Ik dacht dat het om een huis en tuin klok ging, daarom.

@joopv: Zal ik eens proberen.

(*) De nixieklokkit van Claus Urbach draait eveneens op een 16F876.
De software is ontwikkeld in C door Thomas Scherrer (OZ2CPU) en neemt de volledige beschikbare 8KB in beslag...

Even een update alsnog..

Ik gebruik nog steeds de Conrad module, maar heb mijn code nu wel een enorme makeover gegeven.
De klok loopt nu perfect.. met een klein heel raar probleem..

Op het moment dat mijn vader de kamer binnenkomt.. krijg ik storing..
De klok loopt uren achter elkaar perfect, zonder enige tekenen van storing te weergeven. Maar als mijn vader binnenkomt krijg ik alleen nog maar rare dingen binnen.
Hoe is dit mogelijk?

(ps: "Hou je vader dan uit je kamer" is helaas niet mogelijk.. het klokje is voor hem)

Heeft je vader misschien een peacemaker?

Nop.. Niets van elektronica.. dat is het rare :P

peacemaker?

Altijd handig in een huwelijk :+

@K-4U: Je vader moet dan, logisch gezien, iets op zich dragen die de DCF77 ontvangst verstoort.
Kan je hem niet vragen eens naakt de kamer binnen te wandelen? :D

@bprosman: Nee, dank je. Dan was ik nu nog getrouwd...;)

Een pacemaker stoort niet. Dat zou veel te veel vermogen kosten.

Op 6 januari 2011 20:32:36 schreef flipflop:
Een pacemaker stoort niet.

Oeps, ne kemel geschoten in de syntax...:)

Ik twijfel er ook tenzeerste aan dat een pacemaker zou storen, maar 'iets' in/op/rond K-4U's vader moet schijnbaar toch de oorzaak zijn.

@K-4U: Heb je meer info?
Hoe dicht moet je vader bij de DCF77-receiver komen vooraleer de storing optreedt?

PS: Mijn Aldi analoge DCF77 wandklok heeft onlangs de geest gegeven, alhoewel nog geen 3 jaar oud (was iets van 14-15€, ben natuurlijk kasbonnetje kwijt voor terugbetaling door Aldi).
Het begon met een haperende secondenwijzer, nu haperen ook nog de minuten- en urenwijzer (denk dat de plastieken overbrenging een paar tandjes op sommige tandwieltjes mist).
Vermits ik erg aan de klok gehecht ben (zeer mooi en strak design: Geborsteld vertikaal U-vormig aluprofiel achter hetwelk het klokmechanisme gemonteerd zit. Een ronde heldere glasplaat met uren/minuten schaalverdeling is met 2 afstandshouders op het aluprofiel bevestigd. De wijzers zelf zitten tussen de glasplaat en het aluprofiel) ga ik een nieuw DCF77 klokmechanisme monteren.
Van het defecte klokmechanisme zal ik proberen het DCF77-ontvangergedeelte te recupereren/scheiden en eens uit te testen op storings- en ontvangstgevoeligheid.

In mijn eetkamer hangt tevens sinds een aantal jaar de welbekende grote Ikea analoge wandklok van zo'n 60cm diameter (nu niet meer in het gamma).
Ik heb een tijdje geleden geprobeerd deze wandklok om te bouwen naar DCF77 met een Junghans DCF77 klokmechanisme van bij Conrad.
De ombouw is mislukt om de simpele reden dat de wijzers van deze klok zò groot zijn dat de stepmotor van het Junghans mechanisme niet de benodigde kracht bezit om de wijzers betrouwbaar rond te draaien (plat op tafel lukt het wel goed :().
Zelfs uitbalanceren van de wijzers aan de korte zijde met gelijmd vislood hielp niet...
Dit Junghans mechanisme ga ik nu gebruiken om mijn Aldi wandklok weer in ere te herstellen.

Oke.. de klok is nu al bijna 24 uur aan het draaien.. In de tijd dat thuis was en niet aan het slapen, is mijn vader meerdere keren de kamer op komen lopen.

In totaal staat de "onzin-op-het-scherm"-teller op 1.
Wat er nu precies aan de hand is weet ik niet. We houden het erop dat zijn mobiele telefoon(die hij altijd met bluetooth en wifi aan bij zich heeft) de stoorzender(/ontvanger? wifi is toch deels passief?) was.

In dat ik deze post type vind mijn klok dat het 02:11 is. Nu 3 minuten wachten tot de klok zichzelf verbeterd.. (Heb een routine ingebouwd dat de klok kijkt of de tijd radicaal veranderd is.. Op het moment dat dat 3 keer is voorgekomen, is zijn gedachtengang: "Oh Wacht.. de tijd van de DCF is nu al zeker 3 keer niet eens in de BUURT geweest van mijn tijd.. zal ik het fout hebben? Zal de DCF dan toch de waarheid spreken?".. Vervolgens gaat hij zoveel twijfelen dat hij zichzelf gewoon opblaast.. zet hij de DCF tijd neer..)

Is bovenstaand te begrijpen?

@Turbokeu: Hij hoeft de deur al open te doen.. 2 a 3 meter..

Ik zou zeggen, laat ie z'n telefoon eens niet meebrengen. Da's toch snel te testen of heeft ie 'm geimplanteerd?

Op het moment dat dat 3 keer is voorgekomen, is zijn gedachtengang: "Oh Wacht.. de tijd van de DCF is nu al zeker 3 keer niet eens in de BUURT geweest van mijn tijd.. zal ik het fout hebben? Zal de DCF dan toch de waarheid spreken?"

Je moet natuurlijk ook wel kijken of het een juiste tijd is door de ontvangen tijden te vergelijken en pas als er 2 zijn ontvangen die kloppen de boel gelijk zetten.

Op 1 januari 2011 11:48:22 schreef Henk424:
De module uitnemen, PON en min verbinden, + aansluiten (1,5 volt) Op de aansluiting naast de plus is het DCF-signaal beschikbaar.
Dit signaal voer ik toe aan de comparator op de PIC. Opampje kan natuurlijk ook.

Heren,
Ik ben sinds enige tijd ook met een klok project bezig (QlockTwo kloon) en wil deze via DCF gaan synchroniseren. Ik heb eerst even met de Conrad module zitten spelen maar krijg daar geen betrouwbaar signaal uit gezien de hoeveelheid electronica in mijn kamer. Als tip van Henk heb ik nu die Hema klok gehaald en al uit elkaar gehaald maar heb daar een vraag over.
PON en min verbinden => ik neem aan dat je met min de GND bedoelt? Komen beide dan aan massa te hangen? Moet je nog een pull up gebruiken voor het DCF signaal? Ik wil deze gelijk aanbieden aan de ucontroller (Arduino met ATmega) voor de decodering.

Alvast bedankt voor het antwoord.

GJ.

Ja, PON moet aan GND( massa). Pull-up hoeft niet, je kunt de module testen met een analoge meter, elke seconde gaat 'ie naar 1.5 volt.
De module verwacht ook een voedingsspanning van 1,5 volt. Als je het signaal rechtstreeks op een digitale poort aansluit is het niet zeker dat een niveauwisseling wordt herkend. Zelf heb ik hem aangesloten op de comparator van een pic. In mijn eerste experimenten gebruikte ik een opampje om het signaal op te krikken.

Op 1 januari 2011 13:44:50 schreef Arco:
Ik heb zo'n 8 jaar geleden deze paneelmeter-module gekocht bij Conrad. (Helaas, ze hebben ze niet meer...)
Een van de beste die ik heb, werkt echt altijd en overal, op 1 LR44 celletje.
Heeft een aansluiting/header op de achterzijde met het signaal...

[afbeelding]

[afbeelding]

Ik heb er zo ook een, kun je me misschien aan de gegevens helpen over de pin-out van de connector achterop? Ik kan de beschrijving niet meer vinden.... Bij voorbaat dank,
Louis

Ter info: Conrad voert, naast het 641138 DCF77-ontvangertje nu ook een andere (betere?) ontvanger: Klik

[ge edit]
Erop lijkend, helaas niet hetzelde, dank driessens_nl:
DCF-module bij Conrad Bestnr.: 641871 - 89

[Bericht gewijzigd door RoelP op (39%)]

@RoelP: helaas is dat niet dezelfde module. Lijkt er sterk op maar deze heeft geen uitgang op de achterkant en daarbij vreet dit ding batterijen.

Excuus voor de kick, maar ik heb een vraagje over de aangeraden klok/wekker.

Op 2 januari 2011 16:40:21 schreef Henk424:
De Portland DCF wekker staat nog steeds in de schappen van de Hema.
Prijs: 7,95
Ik heb wekkers van aardig wat andere merken opengeschroefd, o.a. Aldi en Lidl e.d. maar nergens anders ben ik een 'losse' en goed toegankelijke module tegen gekomen.

Alle wekkers/klokken van de lokale Hema hebben een Hema merk erop staan, geen Portland of wat dan ook. De enige DCF-klok/wekker die ik op de site van Hema kon vinden heeft geen losse DCF-module.

Heeft iemand een foto dan wel productlink van de goede klok?

Ik heb een paar DCF77 Modules bij Reichelt besteld en ben daar nu mee aan het testen.
Ze werken op plaatsen waar een Conrad module geen goed ontvangst had, dus dat ziet er goed uit !

http://www.reichelt.nl/index.html?ACTION=3;ARTICLE=57772;SEARCH=DCF77 MODUL

Wat wel vreemd is: Deze module heeft een PON Ingang, waamee je de module kan in-of uitschakelen (als ik het goed begrijp).

Deze zou bij normaal gebruik hoog gemaakt moeten worden, maar omdat er in de module een verbinding zit tussen deze Ingang en de Gnd, krijg je dan kortsluiting. Als ik deze ingang niet gebruik dan werkt de module gewoon !

Op 15 januari 2013 16:18:36 schreef bartgrefte:
Excuus voor de kick, maar ik heb een vraagje over de aangeraden klok/wekker.

[...]
Alle wekkers/klokken van de lokale Hema hebben een Hema merk erop staan, geen Portland of wat dan ook.

Die link van Henk424 dateert ook van 2 januari 2011. Is dus heel goed mogelijk dat die dingen ruim 2 jaar later niet meer in het assoritment van Hema zit. ;)

Op 25 april 2013 14:44:57 schreef MMSoft:
Deze zou bij normaal gebruik hoog gemaakt moeten worden, maar omdat er in de module een verbinding zit tussen deze Ingang en de Gnd, krijg je dan kortsluiting. Als ik deze ingang niet gebruik dan werkt de module gewoon !

I.t.t. wat ik in antwoord op je mail beweerde moet de PON ingang inderdaad laag (GND) gemaakt worden (niet hoog, +UB) om de DCF77 module in te schakelen (te snel door de DS gelezen).

Het verwondert mij niet dat er van fabriekswege een harde (soldeer?)verbinding tussen de PON ingang en massa bestaat maar dat zou dan wel in de DS mogen vermeld worden (anders inderdaad risico op kortsluiting van de voeding als de PON ingang gebruikt wordt).

De PON ingang heeft trouwens enkel praktisch nut bij batterijvoeding of knoopcelvoeding.

Die link van Henk424 dateert ook van 2 januari 2011. Is dus heel goed mogelijk dat die dingen ruim 2 jaar later niet meer in het assoritment van Hema zit.

Heb ik in 2012 naar gekeken. Model Portland kon ik niet meer vinden. Heb een ander klokje gekocht, maar DCF deel is niet eenvoudig te scheiden.
Uiteindelijk een Meinberg kaartje gevonden. Doet het zelfs in de PC (met externe antenne).

Het verwondert mij niet dat er van fabriekswege een harde (soldeer?)verbinding tussen de PON ingang en massa bestaat maar dat zou dan wel in de DS mogen vermeld worden

Er zit een dun spoortje (met een klein ringetje er tussen), dit lijkt mij makelijk door te krassen. Het duurt nog wel eens een tijdje voordat deze Reichelt module zijn eerste puls ontvangt (tot wel 40 sec), maar als deze eenmaal ontvangst heeft geeft deze een betrouwbaar signaal af.
Zelfs 20 Cm vanaf mijn PC heb ik goed ontvangs.
Kortom: Deze module is een paar euro duurder dan die van Conrad, maar is dan ook duidelijk beter...

Op 25 april 2013 15:35:42 schreef MNM(tm):
[...]
Die link van Henk424 dateert ook van 2 januari 2011. Is dus heel goed mogelijk dat die dingen ruim 2 jaar later niet meer in het assoritment van Hema zit. ;)

I know, maar had gehoopt dat iemand die nog wist te vinden ergens ;)

Uiteindelijk heb ik de Conrad module maar besteld. In eerste instantie kreeg ik die niet werkend, totdat ik erachter kwam dat elke voorbeeldsketch een pin gebruikte die door het Arduino ethernetshield in gebruik was.

Even op een andere pin aansluiten en het werkt prima :D

Ondertussen heb ik ook een manier gevonden om het via een timeserver op het internet te doen, voor het geval de Arduino op een plek komt waar de DCF ontvanger niks kan ontvangen. Helaas werkte dat eerst ook niet goed, kreeg GMT tijd en die loopt nu 2 uur achter. NL zit in tijdzone GMT+1 en het is zomertijd. Gelukkig iemand gevonden die een stukje code heeft geschreven om DST ondersteuning toe te voegen.