mikrocontroller.net

Forum: FPGA, VHDL & Co. dcf77 wie start finden????


Autor: Nicky Schrader (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo ihr lieben coder,

ich möchte gerne ein signal, des dcf77 empfängers, verarbeiten.
soweit ich weiß, wird der anfang durch 2 sekunden stille
gekenntzeichnet.
sekundenweise kommen signale (low(100ms) und high(200ms)), welche das
zeit/datums-format übermitteln. diese daten später tzu verarbeiten
stellt auch mein ziel dar!

momentan schiebe ich den ausgang (dcf77) in den carry und prüfe auf
eine 1. ist das der fall, prüfe ich auf die nächste, um wirklich am
anfang zu stehen. dann lasse ich ein 50ms timer laufen und befinde mich
dann eigentlich in der mitte. nach einem 1 sekunde-timer müsste ich mich
dann entweder auf dem nächsten high/low-bit befinden oder auf einer null
(das stellt dann den start dar). in diesem fall, setze ich eine led
(p4.0)

ich benutze den assembler 8051......und das ist mein code:


Code:

$IC(sfr.def) ORG 4000H start: clr c ;inhalt vom carry loeschen MOV
P4,#0 ;alle Lampen aus MOV R0,#20 ;R0 <- 20 MOV c,P1.0 ;Signal vom
DCF77 -> Carry JC start ;wenn != 1 -> spring wieder zu start new: MOV
c,P1.0 ;Signal vom DCF77 -> Carry JNC new ;wenn != 1 -> spring wieder
zu new call timer pruef: ;Label "pruef" Anfang call timer ;1 sekunde
warten DJNZ R0,pruef MOV c,P1.0 ;Signal vom DCF77 -> Carry JC pruef
;Carry != 0 -> spring zum Label pruef setb P4.0 ;erste Lampe anschalten
jmp $ $IC(timer.def) END


das ist mein timmerprogram (timer.def)

Code:

timer: ANL TMOD,#00000001B ORL TMOD,#00000001B MOV TH0,#high 15535 MOV
TL0,#low 15535 setb TR0 JNB TF0,$ clr tr0 clr tf0 ret;


bis jetzt ist mein status folgender:

die lampe geht nie an

ich würde mich tierisch über eine antwort freuen!!!!
ich bedanke mich schon einmal im vorraus.....

lg, nick

Autor: Daniel R. (daniel_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste mal im "Mikrocontroller und Elektronik"-Forum. Dort wirst Du
mehr Erfolg haben als hier.
Ach ja...der Anfang wird durch 1s Pause gekennzeichnet.

Autor: NickD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe das signal aufgezeichnet.
es gib ein low-(100ms) und high-signal(200ms), welches in
sekundenschritten gesendet/von mir epfangen wird. der start wird von
genau 2 sekunden gekenntzeichnet. eine sekunde ist nich richtig!

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr habt beide recht, der 59.Sekundenpuls fällt aus, damit ist der
Abstand zwischen zwei steigenden Flanken hier 2 Sekunden, sonst eine.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mechanische Uhren, wie auf dem Bahnhof, laufen etwas schneller als 60
Sekunden um, und warten auf der 59 .Sekunde auf diesen fehlenden
Impuls. Mit nachtriggerbarem Monoflop leicht zu detektirern

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.