Liste der Anhänge anzeigen (Anzahl: 1)
Zeit mit DCF-Modul auslesen (brauche noch Hilfe!!!!!!!!!!!!)
Hallo,
ich habe einen Code geschrieben, der die Zeit mit einem DCF-Modul auslesen soll. Dieses Modul kommt in einer Alarmanlage zum Einsatz. Die Alarmanlage funktioniert aber nicht wirklich so, wie sie soll. Ich vermute, dass sie irgendwo beim auslesen der Zeit hängen bleibt. Jetzt wollte ich euch mal fragen, ob ihr in meinem Code noch irgendwelche Fehler findet.
Danke
_R2D2
Liste der Anhänge anzeigen (Anzahl: 1)
OK, hier ist mal die überarbeitete Version der Datei.
Ich habe jetzt doch ein kleines Programm geschrieben, das eine LED einschällt, wenn das Signal kommt. Dieses Programm funktioniert auch. Die LED blinkt ziemlich gleichmäßig.
Ich habe das Gefühl, dass der Timer1 ein bisschen zu schnell zählt, da der Overflow-Interrupt ziemlich schnell hinter einander erfolgt. Mein Verdacht liegt immer noch in dieser Zeile (obwohl ich es mit dem Taschenrechner nachgerechnet habe und der Timer erst alle 14,4 Sekunden überlaufen dürfte):
Code:
wert = (ICR1 * (TAKT / (256UL * 65535UL) / 1000UL)); //gezählter Wert in ms umrechnen (Takt=3,6864MHz)
mfg
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe das Programm jetzt noch einmal überarbeitet. Das mit den Flanken stimmt jetzt. Das Programm schällt jetzt noch eine LED an und aus, wenn das Signal kommt, bzw. nicht kommt. Die LED blinkt auch regelmäßig. Aber die einzelnen Bits kann ich immer noch nicht auslesen...
Ich finde trotz gründlichem Überprüfen einfach keinen Fehler mehr. :(
mfg
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das erklärt nicht warum du den Code in die dcf.h und nicht dcf.c schreibst.
Das mache ich schon lange so, weil ich keine zwei Dateien (dcf77.h und dcf77.c) haben möchte. In .c-Dateien kommen bei mir nur die Hauptprogramme und die dazugehörigen Unterprogrammen. Aber das ist doch für die Funktion des Programms egal.
Ich habe das Signal jetzt mal aufgezeichnet, und dabei ist mir aufgefallen, dass sehr viele kleine Störungen (meist direkt vor den eigentlichen Impulsen) auftreten. Dann ist es ja kein Wunder, dass das Auslesen der Zeit nicht funktioniert. Woran können diese Störungen liegen? An anderen Geräten, die in der Nähe sind und den Empfang stören könnten kann es nicht liegen, da ich es auch schon drausen auf dem Balkon probiert habe.
Ich invertiere und verstärke die Signale der DATA-Leitung sonst nur mit einem einfachen Transistor (BC 547C). (DATA an Basis; Pulldown an Basis (R mit 40kOhm); Kollektor an ICP1 (interner Pullup im µC ist aktiviert); Emitter an GND) Ist der Pulldown Widerstand möglicherweise zu groß?
Als Anhang habe ich die Aufzeichnung von einer Minute und von den ersten 10 Sekunden der Minute angehängt. Dort kann man die Störungen gut sehen.
mfg
_R2D2