Forum: Mikrocontroller und Digitale Elektronik DCF 77 liefert Doppelsignal


von bruegae (Gast)


Lesenswert?

Hallo,
ich habe das DCF 77 Modul von reichelt an meinem AVR angeschlossen. Ich 
habe noch keine Logik zum dekodieren der Uhrzeit programmiert. Vorerst 
habe nur mal einen Counter gemacht, der jedes mal + 1 rechnet, wenn an 
INT1 ein Interrupt mit positiver Taktflanke ankommt. Ich habe nicht das 
Problem, dass kein Signal kommt, sondern das zu viele Signale kommen. 
Und zwar sind es genau doppelt so viele positive Taktflanken wie es sein 
sollten. Es sollten ja in 10 Sekunden 10 postive Flanken sein, bei mir 
sind es 20! Hier der Code zum Aktivieren von INT1:

ldi r16,0b00001100 ;pos edge -> interupt
out MCUCR,r16
ldi r16,0b10000000 ;INT1 akivieren
out GICR,r16

Wenn ich den Interrupt auf beide Flanken einstelle bekomme ich 
dementsprechend 40 Interrupts in 10 Sekunden.

Ich weiß Vorne und Hinten nicht weiter! Bitte helft mir!

mfg bruegae

von Gast (Gast)


Lesenswert?

DCF77 Module sind einfach Scheisse. zu sensitiv...

von Gast (Gast)


Lesenswert?

Wenn dein DCF77-Modul in der Nähe eines Monitors ist, kannst du 
vergessen, die Signale auszuwerten...

von Sascha B. (bruegae)


Lesenswert?

Ich hab die Platine auch schon 2 Meter von meinem TFT weggestellt und 
darauf geachtet das kein Elektronisches Gerät in der Nähe ist. Da macht 
die Platine den selben Mist.
Mal ganz nebenbei kriegt meine gekaufte Funkuhr direkt neben dem TFT 
wunderbar ihr Signal.

von 900ss (900ss)


Lesenswert?

Warum du alles doppelt siehst? ;-)
Weiß ich leider auch nicht.
Hast Du ein Scope? Dann sieh dir das Signal von Empfänger mal an. Der 
scheint wirklich gestört zu sein, so daß er mehr als einen Impuls/s 
liefert.
Versorge den Empfänger mal mit einer Batterie um Störungen durch die 
Stromversorgung schon mal auszuschließen.

Aber ich möchte trotzdem einen Tip loswerden:
Das mit Interrupts zu machen ist eh nicht so gut. Wenn der Empfänger arg 
gestört ist oder ein zu schlechtes Signal bekommt (je nachdem wo du 
wohnst), dann zaubert er die irre viele Impulse und Dein armer AVR 
bearbeitet nur noch die Interrupts für nichts.

Mach es mit Polling alle 10ms und messe damit die Impulsbreite.
Keine Frage, auch mit IRQs funktioniert es aber es ist eben ungünstig.

von Gast (Gast)


Lesenswert?

Wie sieht mit der Stromversorgung aus? Wenn man Ladungspumpen benutzt 
kannst du auch vergessen die Signale auszuwerten...

von Gast (Gast)


Lesenswert?

Oder versuch mal das DCF77-Modul von der Platine zu entfernen. 3 sehr 
lange Drähte benutzen...

von Gast (Gast)


Lesenswert?

Wer ein DCF-Signal über einen externen Interrupt einliest, hat es nicht 
anders verdient.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Man detektiert bei DCF Pulsen keine Flanken, sondern die Dauer von 
Pulsen, also statischen Zuständen eines Datenpins. Bei entprechend 
andauernden 1 oder 0 Zuständen sortiert man diese in zwei Fenster mit 
bestimmter Toleranz ein und dann hat man seine Bits. Dabei spielt es 
dann nichtmal eine Rolle, ob das Modul diese Pulse invertiert ausgibt 
oder nicht.

von HildeK (Gast)


Lesenswert?

Ich kenne mich jetzt mit AVR-Interrupts nicht aus - aber: reagiert der 
möglicherweise auf beide Flanken?

von Hannes (Gast)


Lesenswert?

wenn man ihn entsprechend einstellt schon.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.