PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Controll und RS1 für DCF77



Funkpeter
04.11.2014, 18:03
Hallo alle zusammen,

nach zahlreichen Versuchen mit dem RN-Controll, dem DCF77-Empfänger und dem RS1-Ic zum Dekodieren der DCF komme ich einfach nicht weiter.

mit dem im Anhang modifizierten Programm habe ich laut Anleitung den Empfänger, den Decoder-IC und den RN-Controll verdrahtet.
Mehr als die Anzeige, dass die Uhrzeit nicht verifiziert werden konnte und der Zeile 191:191:191 kommt da nix auf das Display, das irgendwie nach einer Zeit aussieht....

Ich kann auch die Zeile .... Open "comd.2:2400,8,n,1" For Input As #1.... nicht recht interpretieren. Ist der Anschluß am Port d.2 erforderlich? An diesem habe ich keine Verbindung hergestellt.

Nachdem ich die Verbindungen, Hinweise zum Programm und anderes mehrfach kontrolliert habe, wende ich mich daher um Hilfe an diejenigen im Forum, die diese Schaltung und das Programm bereits zum Laufen bekommen haben.

Für Hinweise und Unterstützung schon mal vielen Dank!

Abendgrüße aus der Nähe von Bremen
Peter (etwas rad(t)los)

29301

Frank
04.11.2014, 22:49
Code bitte immer als Quelltext posten, so kann dir besser geholfen werden!

Ich poste dir mal ein Beispiel für RN-AVR-Universal, das läßt sich leicht für RN-Control umsetzen.
Hier wird Port D7 als Eingang genutzt. Bei deiner Anweisung wäre es Port D2 der als Eingang genutzt wird.





'################################################# #############
'DCF_Decoder3.bas
'
'
'Das Programm liest die Uhrzeit aus dem digetalen DCF-Decoder aus
'und gibt die Zeit über RS232 aus
'Den digitalen DCF Decoder gibt es nur bei Robotikhardware.de
'Es muss lediglich PIN PD7 mit dem DOUT Pin des Chips DCF-RS1 verbunden werden
'Natürlich auch GND und VCC
'
'Wenn ein USB Modul an RN-AVR UNIVERSAL angesteckt oder eingelötet wurde
'dann wird das Ergebnis über USB zu einem virtuellen COM Port übertragen
'und kann auch mit allen Programmen oder Terminalprogramm empfangen werden
'
' (c) Frank roboternetz.de
'Bezug: www.robotikhardware.de
'Weitere Beispiele auf DVD oder im www.Roboternetz.de und rn-wissen.de
'################################################# #####################




Declare Sub DCF_UhrzeitLesen()


$programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer)
'$prog &HFF , &HFF , &HD9 , &HFE 'Fusebits richtig programmieren (Quarz ein,Jtag aus)


$regfile = "m644pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64


$crystal = 8000000 'Quarzfrequenz


$baud = 9600 'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9600


Config Pind.6 = Output 'LED
Led1 Alias Portd.6






'Diese Variablen enthalten nach dem Abruf die Uhrzeit und Datum Informationen
Dim uhr_sek As byte
Dim uhr_min As byte
Dim uhr_std As byte
Dim uhr_tag As byte
Dim uhr_monat As byte
Dim uhr_jahr As byte
Dim uhr_wochentag As byte
Dim uhr_sommerzeit As byte
Dim uhr_zeitumschaltung As byte
Dim uhr_sync As byte


dim bstart as byte 'Enthaelt Byte Zeilenanfang immer 126
dim bende as byte 'Enthaelt Byte Zeilenanfang immer 127


dim zeitgueltig as byte


wait 1
zeitgueltig=0
Do
DCF_UhrzeitLesen
if zeitgueltig=1 then
Print "Heute haben wir den: "; uhr_tag;".";uhr_monat;".";uhr_jahr;" ";uhr_std;":"; uhr_min;":";uhr_sek;" Wochentag:";uhr_wochentag
if uhr_sommerzeit=1 then print "Es gilt Sommerzeit!"
print "Die Uhr wurde von "; uhr_sync; " Minuten per Funk abgeglichen"
print
endif
Wait 5
toggle led1
Loop








'Hilfsfunktionen






'Diese Funktion ruft der Zeit im binären Modus ab
'und uerbergibt diese den globalen Uhr Variablen
Sub DCF_UhrzeitLesen()
Config Pind.7 = Input
if Pind.7 =1 then 'DCF Uhrzeit bereits vorhanden?
'Kurz auf GND setzen um DCF Decoderzeit ausgeben zu lassen
Config PORTD.7 = output
PORTD.7=0
waitus 1
Config Pind.7 = Input


Open "comd.7:2400,8,n,1" For input As #1
Inputbin #1,bstart,uhr_tag,uhr_monat,uhr_jahr,uhr_std, uhr_min,uhr_sek,uhr_wochentag,uhr_sommerzeit,uhr_z eitumschaltung,uhr_sync,bende
Close #1
Config Pind.7 = Input
uhr_tag=uhr_tag-65
uhr_monat =uhr_monat-65
uhr_jahr =uhr_jahr-65
uhr_std=uhr_std-65
uhr_min =uhr_min-65
uhr_sek =uhr_sek-65
uhr_wochentag = uhr_wochentag-65
uhr_sommerzeit=uhr_sommerzeit-65
uhr_zeitumschaltung=uhr_zeitumschaltung-65
uhr_sync=uhr_sync-65
zeitgueltig=1
else
zeitgueltig=0
Print "Zeit noch nicht verifiziert!"
endif


end sub

Funkpeter
05.11.2014, 09:58
Hallo Frank,

vielen Dank für das Script! Ich werde es in dieser Version auf den RN-Controll brennen und etwas modifizieren um es auch auf dem LCD anzeigen zu lassen. Für den comD.2 setze ich comA.2, was ja fur die Funktion unerheblich sein dürfte. Hast Du bezüglich der Funktionssicherheit des RS1 IC Erfahrungen? Ich hoffe, dass das IC nicht den Geist aufgegeben hat.
Rückmeldung der Versuche folgt!

Gruß aus Bremen
Peter

Frank
05.11.2014, 10:06
RNS1 funktioniert wunderbar wenn du es richtig verdrahtest!
Genau die Beschaltung wie im Datenblatt nutzen. Ports kannst du natürlich beliebige verwenden wenn du Programmcode anpasst.
Denk dran das es 3 Minuten dauern kann bis er sich synchronisiert hat!