Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Privatkunden Shop

Diverses

Real-Time-Clock RTC-DCF mit DCF77-Empfang

Liebe ELVforum-Community, mit dem heutigen Tag informieren wir Sie darüber, dass dieses Forum demnächst eingestellt wird. Alle weiteren Informationen zu diesem Schritt und welche Alternative wir planen, entnehmen Sie bitte dem angepinnten Forumsbeitrag.
Beiträge zu diesem Thema: 3

ELV Bausatz USB-I2C-Interface, inkl. Gehäuse, USB-Kabel, 3 Anschlusskabel

Artikel-Nr.: 084123

zum Produkt
Real-Time-Clock RTC-DCF mit DCF77-Empfang
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
06.08.2013, 22:10
ein Beispiel oder ein Makro wäre nicht schlecht.
Ist ein Pullup Widerstand nötig. Wird ein Wandler 5 Volt auf 3.3 Volt benötigt:
Aw: Real-Time-Clock RTC-DCF mit DCF77-Empfang
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
13.08.2013, 12:14
Hallo manfi

Die Daten und Taktleitung des I²C-Bus werden über jeweils 10kOhm Widerstände auf 5V Potential gelegt. Für die Verwendung von 3,3V Slaves löten Sie bitte die Pull-Up-Widerstände R2 und R3 aus und verschalten die beiden Widerstände auf Seiten der 3,3V Slaves, so dass die Daten- und die Taktleitung auf 3,3V Spannung "gezogen" werden. Der Prozessor der USB-I²C-Interface kann auch einen High-Pegel der Takt und Datenleitung von lediglich 3,3V auswerten.

Beispiele stehen für LogView 2.7 (Ini-Datei) sowie eine Demosoftware zur Verfügung.
Mit freundlichen Grüßen euer Team der technischen Kundenbetreuung
Aw: Real-Time-Clock RTC-DCF mit DCF77-Empfang
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
16.08.2013, 16:57
Hallo
ein Beispiel in Bascom
Vorschläge und Erweiterungen erwünscht




'------------------------------------------------------------------
' (c) 2013
' ELV Real-Time-Clock mit DCF77-Empfang
' Version 1.0
'
'Arduino Uno

'Atmega 328
'------------------------------------------------------------------
'
$regfile = "M328def.dat"
$crystal = 16000000
$baud = 38400
$hwstack = 32 ' default use 32 for the hardware stack

$swstack = 10 'default use 10 for the SW stack

$framesize = 40

Config Sda = Portc.4 'I2C-Pins definieren
Config Scl = Portc.5
I2cinit
Print"I2C init"
' we need to provide the SDA pin name
'Dim ELV_RTC_DCF77_Schreiben As Byte
'Dim ELV_RTC_DCF77_Lesen As Byte
dim Datenbyte_Sekunde as Byte
dim Datenbyte_Minute as Byte
dim Datenbyte_Stunde as Byte
dim Datenbyte_Wochentag as Byte
dim Datenbyte_Tag as Byte
dim Datenbyte_Monat as Byte
dim Datenbyte_Jahr as Byte
dim Datenbyte_Alarm_Minute as Byte
dim Datenbyte_Alarm_Stunde as Byte
dim Datenbyte_Alarm_Wochentag as Byte
dim Datenbyte_periodischer_Interrupt as Byte
dim Datenbyte_Alarm_Config_Register as Byte
dim Datenbyte_Per_Int_Config as Byte
dim Datenbyte_DCF77_Config_Register as Byte
dim Datenbyte_Status_Register as Byte


'------------------------------------------------------------------------------
Const ELV_RTC_DCF77_Schreiben = &b0000010
Const ELV_RTC_DCF77_Lesen = &b0000011


Datenbyte_Stunde = Makebcd (14) '2h
Datenbyte_Minute = Makebcd(00) '1h
Datenbyte_Sekunde = Makebcd(00) '0h
Datenbyte_Tag = Makebcd(16) '4h
Datenbyte_Wochentag = Makebcd(5) '3h Wochentag 001:Montag / 010:Dienstag / 111:Sonntag
Datenbyte_Monat = Makebcd(8) '5h
Datenbyte_Jahr = Makebcd(13) '6h

Datenbyte_Alarm_Minute = Makebcd(00) '7h
Datenbyte_Alarm_Stunde = Makebcd(00)'8h
'Wochentag 001:Montag / 010:Dienstag / 111:Sonntag
Datenbyte_Alarm_Wochentag =4 '9h
Datenbyte_periodischer_Interrupt =0 'Ah
Datenbyte_Alarm_Config_Register =0 'Bh
Datenbyte_Per_Int_Config =0 'Ch
Datenbyte_DCF77_Config_Register = &b0000101 'Dh
Datenbyte_Status_Register = 0

Print"Programmstart"
I2cstart
I2cwbyte ELV_RTC_DCF77_Schreiben
I2cwbyte &b0000000

I2cwbyte Datenbyte_Sekunde
I2cwbyte Datenbyte_Minute
I2cwbyte Datenbyte_Stunde
I2cwbyte Datenbyte_Wochentag
I2cwbyte Datenbyte_Tag
I2cwbyte Datenbyte_Monat
I2cwbyte Datenbyte_Jahr
I2cwbyte Datenbyte_Alarm_Minute
I2cwbyte Datenbyte_Alarm_Stunde
I2cwbyte Datenbyte_Alarm_Wochentag
I2cwbyte Datenbyte_periodischer_Interrupt
I2cwbyte Datenbyte_Alarm_Config_Register
I2cwbyte Datenbyte_Per_Int_Config
I2cwbyte Datenbyte_DCF77_Config_Register
I2cwbyte Datenbyte_Status_Register

I2cstop


Do
I2cstart
I2cwbyte ELV_RTC_DCF77_Schreiben
I2cwbyte &b0000000
I2CREPSTART
I2cwbyte ELV_RTC_DCF77_Lesen

I2crbyte Datenbyte_Sekunde , ack '0h
I2crbyte Datenbyte_Minute , ack '1h
I2crbyte Datenbyte_Stunde , ack '2h
I2crbyte Datenbyte_Wochentag , ack '3h
I2crbyte Datenbyte_Tag , ack '4h
I2crbyte Datenbyte_Monat , ack '5h
I2crbyte Datenbyte_Jahr , ack '6h
I2crbyte Datenbyte_Alarm_Minute , ack '7h
I2crbyte Datenbyte_Alarm_Stunde , ack '8h
I2crbyte Datenbyte_Alarm_Wochentag , ack '9h
I2crbyte Datenbyte_periodischer_Interrupt , ack 'Ah
I2crbyte Datenbyte_Alarm_Config_Register , ack 'Bh
I2crbyte Datenbyte_Per_Int_Config , ack 'Ch
I2crbyte Datenbyte_DCF77_Config_Register, ack 'Dh
I2crbyte Datenbyte_Status_Register , nack 'Eh
I2cstop



Print "Datenbyte_Sekunde "; Makedec(Datenbyte_Sekunde) '0h
Print "Datenbyte_Minute "; Makedec(Datenbyte_Minute) '1h
Print "Datenbyte_Stunde "; Makedec(Datenbyte_Stunde) '2h
Print "Datenbyte_Wochentag "; Makedec(Datenbyte_Wochentag) '3h
Print "Datenbyte_Tag "; Makedec(Datenbyte_Tag) '4h
Print "Datenbyte_Monat "; Makedec(Datenbyte_Monat) '5h
Print "Datenbyte_Jahr "; Makedec(Datenbyte_Jahr) '6h
Print "Datenbyte_Alarm_Minute "; Datenbyte_Alarm_Minute '7h
Print "Datenbyte_Alarm_Stunde "; Datenbyte_Alarm_Stunde '8h
Print "Datenbyte_Alarm_Wochentag "; Datenbyte_Alarm_Wochentag '9h
Print "Datenbyte_periodischer_Interrupt "; Datenbyte_periodischer_Interrupt 'Ah
Print "Datenbyte_Alarm_Config_Register "; Datenbyte_Alarm_Config_Register 'Bh
Print "Datenbyte_Per_Int_Config "; Datenbyte_Per_Int_Config 'Ch
Print "Datenbyte_DCF77_Config_Register "; Datenbyte_DCF77_Config_Register 'Dh
Print "Datenbyte_Status_Register "; Datenbyte_Status_Register 'Eh





Print Makedec(Datenbyte_Stunde) ;":"; Makedec(Datenbyte_Minute);":" ; Makedec(Datenbyte_Sekunde)




waitms 600

Loop

End