Bascom DCF77 Empfang auf dem ATmega8

Pacifista

Neues Mitglied
05. Juni 2012
5
0
0
31
Sprachen
Guten Tag,

Ich muss leider zugeben das ich keine ahnung von Programmierung habe (nur einfache Grundkenntnisse) und wollte in diesem Forum um Hilfe erbitten, ich habe eine Facharbeit über eine AVR betriebene Funkuhr, welche die Zeit (Stunden und Minuten) auf 7 Segmentanzeigen ausgibt, zu machen und wollte die Funkuhr wie auf dem Bilddcfclk.png machen , die am Computer mit Eagle bearbeitete Platine sieht nun so aus Facharbeit.png (ich habe den ATTiny2313 mit dem "myAVR Board MK2 V2.10 ausgetauscht, da ich zuvor mit diesen geabreitet hatte und ich gehofft hatte das er mir einiges erleichtern würde und ich benutze de mittlere 7 Segmentanzeige zum dargestellen eines Verbindungstriches zur unterteilung der Minuten- und Stundenanzahl).

Mein Problem ist nun das ich mit den Programmen die ich im Internet, als auch hier, gefunden habe nicht in der Lage bin das DCF77 Signal zu digitalisieren bez. den Analog wert des Empfängers so zu Digitalisieren das ich damit weiter arbeiten könnte. (wie bereits gesagt, ich bin furchtbar im Programmieren und konnte die nötigen informationen, aus dem Programm das netterweise von Herr Markus bereitgestellt wurde nicht wirklich benutzen)

Die Schaltung habe ich von http://elektronik-kompendium.de/publ...avr/dcfclk.htm

Ps: Die Aufgabe meines MK2 Boards soll sein, das DCF77 Signal auszuwerten und die Stunden und Minutenzahl auf den 7 Segmentanzeigen darzustellen (Ich werde nachdem mir mit dem DCF77 Signal geholfen wurde versuchen den Rest soweit ich dazu in der lage bin alleine zu beenden)

Ich danke euch allen schonmal ganz herzlich für jeden hilfreichen Kommentar und/oder Programm das ihr zur Verfügung stellt.
 
Hallo,

ich hab erstmal rausfinden müssen wo die Uhr genau steht da dein Link etwas "fehlerhaft" ist ;)
elektronik-kompendium.de - einfache DCF77-Funkuhr
>> Schaltplan für die Grundversion
das mußte ich erstmal machen da mir der Tiny2313 doch etwas klein vorkam.
Eigentlich kein Wunder da -> "Assemblerprogramm und Hexfiles für alle drei Versionen"

Also mit C und erst recht mit Bascom wirst du mit dem Tiny2313 nen Fehlstart machen.
Nimm mal den Mega8. Da hast du bessere Chancen das erfolgreich umzusetzen.

Also entweder du löst die Aufgabe mit Assembler oder du nimmst für C oder Bascom nen Mega8 um dir durch die Speichergröße nicht zusätzliche Steine in den Weg zu legen.

Gruß
Dino
 
Hallo Pacifista !

Willkommen im AVR-Praxis Forum! :ciao:


das DCF77 Signal zu digitalisieren bez. den Analog wert des Empfängers so zu Digitalisieren das ich damit weiter arbeiten könnte.

Ähm.... wie bitte?
Was möchtest du? :cool:

Ich habe mir deinen ganzen Beitrag nun bereits schon zweimal durchgelesen und ich weiß immer noch nicht, was du eigengtlich möchtest? :hmmmm:


In welcher Sprache programmierst du denn überhaupt und was hast du bis jetzt schon fertig?
Stell deinen derzeitigen Programmcode hier doch mal ein, damit wir auch geziehlt helfen können.


Aktuell wüsste ich persönlich nicht, wo dir nun der Schuh drückt.

Grüße,
Cassio


PS: Vielleicht sollten wir für das Thema doch besser einen eigenen Thread aufmachen.
Scheint ggf. doch eher ein längeres Thema zu werden!
 
Guten Tag,

Ich habe eine Funkuhr nach diesem Link nachgebaut http://elektronik-kompendium.de/public/arnerossius/schaltungen/avr/dcfclk.htm (nach diesem Bild um genau zu sein dcfclk.png (tut mir leid das der letzte nich funktioniert hatte)
und diese sieht nun wie folgt aus Facharbeit.png .

Dazu zu sagen ist, das ich für meine Facharbeit "MyAVR Board MK2 Version 2.10" benutze, in welchem ich nun ein ATmega 8 eingebaut habe.
Mein eigentliches Problem ist nun wie folgt, da ich leider extrem geringe Kenntnisse im Programmiertechnischen Bereich besitze wollte ich fragen, ob mir jemand ein Programm geben könnte, in welchen das DCF77 Signal mit dem AVR ausgewertet werden kann (Ein Emfänger befindet sich inder Schaltung, falls dieser schlecht erkennbar ist), dazu würden Minuten, Stunden, Tag (z.B. 08. des Monats) und Monat vollkommen genügen, mihilfe dieser Werte würde ich dann Versuchen das restliche Programm zu konzipieren.

Ich entschuldige mich für meinen letzten Post, da dieser nich vollkommen verständlich war, sowie meine unzureichenden Kenntnisse im programmieren und bedanke mich, schonmal recht herzlich für jeden der mir bei diesen Thema helfen kann.

Ps: Meine eigentliche aufgabe lautet eine Funkuhr zu bauen, welche das DCF77 Signal aufnimmt, auswertet und die Stunden und Minuten auf den fünf 7-Segmentanzeigen ausgibt, wobei die dritte 7-segmentanzeige nur ein bindestrich ist.(Ein Programm besitze ich zurzeit leider nicht, da ich das DCF77 Signal zuerst bearbeitet haben wollte und auf diesen Kenntnissen mein Programm ausbauen wollte.)

PPs: (Es gibt auf den obrigen link ein Assemblerprogramm mit Hexfiles, jedoch habe ich von Assembler noch weniger ahnung als von Bascom oder c++, noch weiß ich wie ich diese datei benutzen kann)
 
Hi Pacifista,

die Arbeit mit dem alles nochmal in nen extra Thread reinstellen hättest du dir sparen können ;)
Eine Info an die Mods und es wird an die gewünschte Stelle verschoben und zusammengefaßt.
Ist doch schnell gemacht ;)

ich habe eine Facharbeit über eine AVR betriebene Funkuhr, welche die Zeit (Stunden und Minuten) auf 7 Segmentanzeigen ausgibt,
Wieviel Zeit hast du eigentlich ? Wann muß die Arbeit fertig sein ?

Also unter Bascom gibt es ne Library die dir die gesamte Arbeit mit der DCF77-Decodierung abnimmt und dir das Ergebnis in Variablen übergibt. Alles mundgerecht. Das einzige was dann übrig bleiben würde ist die Anzeigenansteuerung (Multiplex-Betrieb).

Gruß
Dino
 
Die Facharbeit muss bis nächste Woche Freitag fertig sein ( ich weiß, ich habe viel zu spät mit dem Projekt angefangen, aber das werde ich dann schon irgendwie hinkriegen)

Nochmal vielen dank für den Tipp mit den Mega8 und das der DCF77 Empfang in Bascom beschrieben ist , darüber hatte mich weder mein Lehrer noch das Internet informiert.

Gruß
Pacifista
 
Hallo Pacifista!

Puh.... bis nächsten Freitag muss alles fertig sein? :fie:

Damit ich das richtig verstehe....
Du hast absolut NULL Ahnung und fängst jetzt erst damit an und das ganze Programm nebst Hardwareaufbau soll am nächsten Freitag funktionstüchtig sein?
Na, da wünsche ich dir schon mal viel Glück! :adore:

Es soll jetzt nicht böse klingen, aber das ist eigentlich nicht durch ein Selbststudium zu schaffen!
Du wirst also um fertige Programmcodes nicht herum kommen, die du dann im besten Falle noch ein wenig erklären kannst.

Tja und wenn ich ehrich bin, dann ist der DCF77-Teil im Programmcode das kleinste Problem.... sofern du mit BASCOM arbeiten solltest.
Die Schwierigkeit kommt erst mit den Siebensegmentanzeigen, die du auch noch im Multiplexbetrieb ansteuern musst. :cool:


Nun ja, wir können dich hier natürlich mit fertigen Programmlösungen zuwerfen, aber ob das sinnvoll ist? :hmmmm:
Ich bin da ein wenig skeptisch. :wink:

Grüße,
Cassio
 
Hallo,

also bis zum nächsten Freitag ist das echt sportlich :p :rolleyes:
Wenn man ...
- programmieren kann
- BASCOM verwendet (fertige DCF-Lib)
- die gesamte Hardware rumfliegen hat
- gut löten und Schaltungen entwickeln kann
dann könnte man es in 1-2 Tagen am laufen haben.

Ohne fertige DCF-Lib ist das in der Zeit absolut illusorisch. :fie:

Tip: Nimm BASCOM und mach das Multiplexing der Anzeige komplett in Software ohne Timer.
Das sieht dann in der Anzeige zwar etwas unregelmäßig in der Helligkeit aus und könnte ab und zu beim Ziffernwechsel mal flackern aber es funktioniert und du mußt dir nicht auch noch Interrupts und Hardwarekenntnisse zulegen.

Zum Multiplexing: Wie ziehe ich ein Projekt durch ... (7-Segment-Multiplexanzeige) (Assembler)
Eventuell gibt es schonmal ein paar Gedankenanstöße auch wenn es in Assembler ist.

Hier nochmal ne Binäruhr in Bascom : BASCOM-Spielereien für Anfänger
Ist ohne Timer und sehr rudimentär. Aber es erklärt das Multiplexing und die Mustererzeugung bei 7Segm-Anzeigen. Also damit aus den Ziffern die entsprechenden Segmente der Anzeige werden.

Gruß
Dino
 
Hallo,
ich bins mal wieder, ich bin mit meiner Funkuhr bereits zu 90% fertig, jedoch hakt es bei mir zurzeit nur noch an der Progammierung der "Zeiteinstellung", wie bereits vorher erwähnt habe ich keienrlei ahnung von Assembler etc., jedoch habe ich dieses fertige Programm gefunden(Anhang) und benötige nun nur noch hilfe beim einstellen der Sekunden, da dort ein 4.194304 MHz Quarz benutzt wird und ich jedoch nur einen 3.2768Mhz Quarz besitze., ich habe mir das Programm mehrere male durchgelesen, jedoch finde ich nicht die stelle an der ich dies einstellen könnte:confused:.

Es wäre zudem perfekt, wenn ich ihr dieses Programm zusammenfügen könntet ( da steht zwar ungefähr wo, jedoch weiß ich nicht ob das Programm "interrupt vectors" besitzt oder nicht.

Vielen Dank schon mal im voraus

Grüße Pacifista

Ps: Nicht wundern, ich musste auf den ATtiny2313 umsteigen da mein Lehrer mir diesen "empfohlen" hatte (hatte keine wahl)
 

Anhänge

  • dcf77.asm
    14,6 KB · Aufrufe: 7
  • dcf77clk.asm
    16,8 KB · Aufrufe: 6
Hi,

ich bin mit meiner Funkuhr bereits zu 90% fertig,
wie bereits vorher erwähnt habe ich keienrlei ahnung von Assembler etc.,
jedoch habe ich dieses fertige Programm gefunden(Anhang)
Es wäre zudem perfekt, wenn ich ihr dieses Programm zusammenfügen könntet
( da steht zwar ungefähr wo, jedoch weiß ich nicht ob das Programm "interrupt vectors" besitzt oder nicht.
Also mal zum mitlesen ...

1. Du hast keine Ahnung von Assembler (ist ja nicht so schlimm)
2. Du hast ein Uhrenprogramm und eine DCF77-Lib (beide in Assembler) gefunden (nicht selber programmiert)
3. Du nennst das finden der Quellcodes 90% fertig
4. Du möchtest das wir die gefundenen Quellcodes für dich zusammenfügen

Also ich hab mal kurz in die Quellcodes gesehen.

1. In der dcf77clk.asm ist die dcf77.asm bereits in einer include-Zeile drin. (hast du das eingetragen?)
2. Nur durch das zusammenfügen wird das nicht laufen
3. Die Daten die von der dcf77.asm in SRAM-Zellen geliefert werden müssen von der dcf77clk.asm auch übernommen werden.

Da die Quellcodes nicht grade viel an Bemerkungen haben (es geht so) würde selbst ich da mindestens 1-2 Tage dran sitzen um mich erstmal reinzudenken und das dann zusammenzufügen. Ich werde es also (alleine schon wegen meiner dünn gesäten Freizeit) nicht machen. Tut mir leid. Eventuell nimmt dir ja jemand anderes die Arbeit ab.

Mit Glück ist die dcf77.asm bereits fertig in der dcf77clk.asm eingebunden. Dann mußt du es nur noch übersetzen.

wegen dem Quarz ...
In der dcf77.asm steht unter anderem folgendes ...
Code:
;DCF77 receiver with plausibility check, automatic summer/winter time switching
;and UTC time calculation for ATTiny2313 @ 4.194304 MHz
...
...
	;negative edge: one bit received (inverted signal: positive edge)
	sbrc	dcfflags, dcfStop ;ignore if reception stopped
	rjmp	dcf_end
	ldi	YL, HIGH([B][COLOR="#FF0000"]205) ;50 ms[/COLOR][/B]
	cpi	temp, LOW([B][COLOR="#FF0000"]205[/COLOR][/B])
	cpc	temp2, YL
	brlo	dcf_err_bitlen
	ldi	YL, HIGH([B][COLOR="#FF0000"]614) ;150 ms[/COLOR][/B]
	cpi	temp, LOW([B][COLOR="#FF0000"]614[/COLOR][/B])
	cpc	temp2, YL
	brlo	dcf_bit_zero ;50ms <= bit length < 150 ms  -->  bit = 0
	ldi	YL, HIGH([B][COLOR="#FF0000"]1024) ;250 ms[/COLOR][/B]
	cpi	temp, LOW([B][COLOR="#FF0000"]1024[/COLOR][/B])
	cpc	temp2, YL
	brlo	dcf_bit_one ;150ms <= bit length < 250 ms  -->  bit = 1
Die Zeitschleifen sind also im Programm mit festen Werten für eine bestimmte Frequenz belegt. Man müßte also den gesamten Quellcode nach diesen Stellen durchsuchen und dann die Zeitschleifen mit Hilfe der Assembler-Hilfe (Befehlszyklen) von Atmel alles neu berechnen. Nee ... besten Dank ... ich hab auch noch was anderes zu tun. Kauf dir das richtige Quarz.

Gruß
Dino
 
Hmm... der 2te link generiert sekunden mittels Timerüberlauf:
Der Timer ist ein 8bit-Timer, der läuft bei dem Originalquarz, und dem gewählten Prescaler mit 16Hz über. Folglich wird in der ISR mit einem Sechzehntel-Sekunden-Hilfszähler (subsec) gearbeitet.
Bei Deinem Quarz würde der Prescaler 12,5Hz liefern - paßt nicht. Wenn Du den Prescaler auf den nächstkleineren Wert setzt, und init/reloadwert des Hilfszählers anpaßt, stimmen zumindest die Sekuden wieder.
 
Haha:D

Ok, ich wusst nich das, das viel Arbeit ist (hab ja keine ahnung von Progammieren)
trotzdem vielen dank ^_^ ich hätte jetzt die nächsten stunden am Programm gesessen und hätte überlegt wie ich die Frequenz ändere,
ich werd gleich morgen (hab ja auch nich mehr viel zeit, bin ich ja selber schuld) versuchen mir den richigen Quarz zu holen.
Nochmals vielen dank das du überhaupt in das Programm reingeguckt hast, viele leute würden das gar nich erst machen.
Naja, ich werd morgen das Programm mal ausprobiern und hoffen das es irgendwie klappt^_^ (Ich habe das ja alles von http://www.elektronik-kompendium.de/public/arnerossius/schaltungen/avr/dcfclk.htm wie bereits voher erwähnt und habe dazu die Schaltung fertig (Platine fräsen lassen mithilfe von "Eagle" und alles fertig gelötet, deshalb meinte ich zu 90 % fertg :) )

Ok, dann werd ich einfach mal auf gut Glück alles versuchen, wenn alles hinhaut werd ich mich nochmal bei euch melden und, falls ihr das möchtet alle dateien dazu schicken, falls jemand anderes das mal versuchen möchte.

Grüß und vielen dank für alles
Pacifista
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)