Grüß euch :) Hat jemand vielleicht eine funktionierende DCF77 library bei der Hand die er mir zukommen lassen könnte und würde :) Möchte die Zeit dann auf einem LCD anzeigen lassen. Danke schon mal im Vorraus. :)
Ich möchte keinen Wecker, eine "World Clock" oder einen Heliostat. Einfach nur eine ganz normale Anzeige der Uhrzeit auf einem LCD in folgendem Format: Uhrzeit: hh:mm Datum: dd.mm.yyyy Dafür eine Library, welche mir die Minuten, Stunden, etc.. in Variablen speichert. Es wäre ja möglich, sogar sehr wahrscheinlich, dass jemand vor mir auf diese Idee gekommen ist. ^^ Würde mir echt viel helfen, weil ich langsam unter Zeitdruck stehe :S
Ryan Polster schrieb: > Ich möchte keinen Wecker, eine "World Clock" oder einen Heliostat. > Und was hindert dich jetzt daran, dir die Projekte durchzusehen und in jeweiligen Projekt den DCF Teil auszubauen? Der ist normalerweise sowieso nur in einer FUnktion enthalten, die zb von einem Timer INterrupt regelmässig aufgerufen wird. D.h. was du brauchst ist die ISR (bzw. die Funktionalität in der ISR) und die Timer INitialisierung. Timer haben aber die unangenehme Eigenschaft, dass sie in jedem Projekt anders vergeben bzw. benutzt werden. D.h. für den Teil mit dem Timer wirst du dich nach deinem bereits vorhandenem Code richten müssen und überlegen zu welchem Timer du die DCF Funktionalität dazupacken kannst. Und der Rest ist der Code in der ISR, der die Zeitanalyse des Signals macht und die Bits da rauspfriemelt. Wahrlich nichts aufregendes. Wenn du um 16 Uhr angefangen hättest, wärst du schon längst fertig. > Würde mir echt viel helfen, weil ich langsam unter Zeitdruck stehe :S Dann hau rein. Immerhin ist das DEINE Matura, die dir eigentlich bescheinigt, dass du einen Beruf erlernt hast, dir in 3 Jahren das Recht gibt den Titel 'Ing.' zu führen und dir Zugang zur Hochschule verschafft.
:
Bearbeitet durch User
es gibt hier irgendwo DCF77-Decodier-Routinen von mir, die stammen aus meiner Anfangszeit mit uC, die würd ich eher nicht nehmen :-( Dagegen gibt es hier irgendwo (mags jetzt nicht raussuchen) einnen Code vom Peter Danegger, der ist genial (wie alles vom Peter)
Guckst du hier: http://blog.blinkenlight.net/experiments/dcf77/dcf77-library/ runterscrollen, Examples und Download Gruß Gerald
Ryan Polster schrieb: > Ich möchte keinen Wecker, eine "World Clock" oder einen Heliostat. > > Einfach nur eine ganz normale Anzeige der Uhrzeit auf einem LCD in > folgendem Format: > > Uhrzeit: hh:mm > Datum: dd.mm.yyyy > > Dafür eine Library, welche mir die Minuten, Stunden, etc.. in Variablen > speichert. > > Es wäre ja möglich, sogar sehr wahrscheinlich, dass jemand vor mir auf > diese Idee gekommen ist. ^^ > Entschuldigung, daß ich mit DCF77-Projekten helfen wollte. Ich konnte doch nicht ahnen, daß der Herr alles fix und fertig auf dem Silbertablett präsentiert haben möchte. Darf es auch ein programmierter Controller sein? Oder vielleicht noch eine Platine dazu? Ach, und löten sollte man sie auch noch. Sag bitte, welche Farbe das LCD haben soll, damit ich auch das richtige Display kaufe. Vielleicht noch ein Gehäuse gefällig? [sarkasmus aus] > [..] weil ich langsam unter Zeitdruck stehe :S Keinen Finger selber krumm machen, aber die Leute, die helfen sollen, noch antreiben. Da kommt mir langsam die Galle hoch.
Gerald B. schrieb: > http://blog.blinkenlight.net/experiments/dcf77/dcf77-library/ Keine Ahnung was das Teil alles kann, aber 2700++ lines of code für DCF77-Empfang ist schon heftig... Mein (schlecher) Code kommt mit 180 zeilen aus, und Peters (den ich gefunden habe: Beitrag "DCF77 Uhr in C mit ATtiny26" ) mit nochmal dramatisch kleiner...
Wie wär's damit: http://pic-projekte.de/wordpress/?p=572#more-572 Auf der Seite ganz Oben ist auch noch ein Link zu einem Projekt, wo unter anderem die Uhrzeit und Datum auf einem LCD ausgegeben wird: http://pic-projekte.de/wordpress/?p=19
:
Bearbeitet durch User
Langsam wird die Frage aktuell, für welchen Prozessor es denn sein darf. Obwohl - wenn alles fertig im Gehäuse sitzt, kommt es darauf eigentlich nicht an ;-) Michael Reinelt schrieb: > Gerald B. schrieb: > >> http://blog.blinkenlight.net/experiments/dcf77/dcf77-library/ > > Keine Ahnung was das Teil alles kann, aber 2700++ lines of code für > DCF77-Empfang ist schon heftig... Was hindert dich daran, dich mal ein bisschen in die verwendete Signalauswertung einzulesen, bevor du über die Codelänge herziehst. Lies dir z.B. einfach mal die Sache mit dem Korrelator zur Phasendetektion durch. Vielleicht begreifst du dann eher, woher die Codelänge kommt.
Ich danke für die schnellen Antworten. :) Ich werde mich mit dem ganzen Code außereinandersetzen und melde mich falls ich Fragen habe.
Mike schrieb: > Was hindert dich daran, dich mal ein bisschen in die verwendete > Signalauswertung einzulesen, bevor du über die Codelänge herziehst. Lies > dir z.B. einfach mal die Sache mit dem Korrelator zur Phasendetektion > durch. Vielleicht begreifst du dann eher, woher die Codelänge kommt. Hey, ich bin nicht "darüber hergezogen". ich habe lediglich festgestellt dass der Code im Vergleich zu anderen DCF77-Implementierungen doch ziemlich umfangreich ist, und wollte wissen warum. Du hast das mit der Phasendetektion eh beantwortet. Nur interessehalber: was braucht das Teil am Ram und Flash?
Hallo Leute :) Ich verwende jetzt die DCF-Library http://pic-projekte.de/wordpress/?p=572#more-572 von Nicolas Meyertöns. Habe alle Schritte die in der Erklärung aufgelistet sind gemacht, nur kommen bei mir trotzdem nur irgendwelche Zeichen raus. Wenn ich das richtig verstanden habe soll ich einen Timer machen der alle 1ms tickt und den Zustand des DCF-Pins abfragt. (F_CPU = 1000000)
1 | void Timer_Initialize(void) |
2 | {
|
3 | TCCR1B = (1<<WGM12); // enter CTC-mode |
4 | TCCR1B |= (1<<CS10); // set prescaler to 1 |
5 | //OCR1A = 31250; // compare value = 31250 (counts to "create" a second)
|
6 | OCR1A = 1000; // compare value = 1000 (counts to "create" a millisecond) |
7 | TIMSK = (1<<OCIE1A); // enable compare interrupt |
8 | }
|
9 | |
10 | ISR(TIMER1_COMPA_vect) |
11 | {
|
12 | checkDCF = true; |
13 | }
|
und in die while-Schleife der main Funktion kommt die Funktion dcf_check() Letztendlich greife ich dann über die time-Struktur darauf zu, sprich: time.Min oder time.Year ich habe mir dazu einen Funktion geschaffen welche mit Variablen auf den LCD druckt.
1 | void lcd_putvar(uint8_t variable) |
2 | {
|
3 | uint8_t var_lenght; |
4 | if(variable == time.Year) var_lenght=4; |
5 | else var_lenght=2; |
6 | |
7 | char c[var_lenght]; |
8 | itoa(variable,c,10); |
9 | uint8_t i; |
10 | |
11 | for(i=0;i<var_lenght;i++) |
12 | {
|
13 | lcd_putc(c[i]); |
14 | }
|
15 | |
16 | }
|
Ausgabe sieht dann so aus: lcd_putvar(time.Min); Ich bitte um Hilfe.
So die Library ist richtig konfiguriert. Jetzt muss es an der Hardware liegen. Muss ich hier noch irgendetwas vorschalten oder so bevor ich in den Mikrocontroller gehe? Hier ein Link zum Datenblatt des Empfängers: http://www.neuhold-elektronik.at/datenblatt/N0955.pdf
PON statisch auf Masse legen bringt nix! Du brauchst eine fallende Flanke. Controller arbeitet ebenfalls mit 3,3V oder kommt mit dem Eingangspegel klar, oder es hängt ein Levelshifter dazwischen? Eventuell muß das empfangene Signal invertiert werden? Ist das Empfangsmodul weit weg von allen Störquellen, wie Schaltnetzteilen etc.? Ist die 3,3V Ub sauber? Wenn die zu stark rauscht, empfängst du nichts.
ok dann lege ich PON auf den µC und per Software liefere ich die fallende Flanke. Bei mir bekommt er im Moment 3,1V durch einen Spannungsteiler mit 3k3 & 2k2 von 5,18V. Die Eingangsspannung kommt von einem Netzteil - einfach abgeschnitten und Krokos draufgelötet. Habs auf dem Schreibtisch und auf dem Fensterbrett im Erdgeschoss getestet - beides erfolglos. Ob die Spannung rauscht weiß ich leider nicht. Weißt du welche Zusatzbeschaltung nötig ist damit ein "schönes" Signal zum µC kommt?
Ich habe den PON-Pin des DCF-Empfängers auf PC6 des µC geschlossen und folgendes im Programm hinzugefügt: im Header: #define DCF77_PON PC6 im Hauptprogramm: PORTC |= (1<<DCF77_PON); PORTC &= ~(1<<DCF77_PON); damit gebe ich ihm doch eine fallende Flanke - oder? Ich habe diese Schaltung in einem Forum gefunden von jemandem mit einem ähnlichen Problem wie meinem: http://www.mikrocontroller.net/attachment/90257/Reichelt-DCF77.GIF Kann ich die verwenden? Und was sind Elkos und Kerkos? Kerkos sind höchstwahrscheinlich Keramik-Kondensatoren aber ich weiß nicht was ein Elko ist. Welcher Transistor ist das? Letztendlich würde mich noch interessieren was die zwei Kondensatoren voneinander unterscheidet? Wenn sich jemand findet der mir diese Fragen beantworten kann wäre ich sehr dankbar :)
ok, die Dinge waren schnell gegoogelt. Punkt an euch ^^ Hab die Schaltung jetzt aufgebaut, geht aber noch nicht.
Seine fallende Flanke bekommt er. Das Signal ist sauber. Library funktioniert angeblich. Woran kann es noch liegen? Ich brauche dringend eure Hilfe.
Jetzt habe ich eine Low-Current LED mit DATA verbunden und die Kathode gegen Masse. Die blinkt im Sekundentakt. Also habe ich offensichtlich Empfang. Es muss also an der Library oder an meiner (DCF)DATA-->(µC)PC7 Schaltung liegen. Ich habe folgende Schaltung verwendet: http://www.mikrocontroller.net/attachment/90257/Reichelt-DCF77.GIF oder wäre eine von diesen besser geeignet? http://www.mikrocontroller.net/mc-project/Pages/Projekte/Funkuhr/dcf77.GIF http://www.google.at/imgres?imgurl=http%3A%2F%2Fwww.mikrocontroller.net%2Fattachment%2F113620%2FPollin_DCF.png&imgrefurl=http%3A%2F%2Fwww.mikrocontroller.net%2Ftopic%2F97295&h=560&w=843&tbnid=iYGN3uBbNrrTvM%3A&zoom=1&docid=LLcgKa9R-P1aMM&ei=8mlWU9usN4XJ4ATA7oGgAQ&tbm=isch&ved=0CHgQMygaMBo&iact=rc&uact=3&dur=1005&page=2&start=15&ndsp=21 letztendlich noch eine Frage: kennt jemand eine funktionierende DCF-Library? Ich danke schonmal im Vorraus :)
>Jetzt habe ich eine Low-Current LED mit DATA verbunden und die Kathode >gegen Masse. Die blinkt im Sekundentakt. Also habe ich offensichtlich >Empfang. Sehr schön. Die machst du besser gleich wieder ab weil dein Modul nur 5uA liefern kann.
Ich hatte sie ohnehin nur zum Testen des Empfangs. Ich werde evtl. eine LED an einen anderen Portpin hängen und das Signal dorthin übertragen, falls ich den Empfang "sehen" möchte. Kann jemand der mehr Erfahrung hat als ich mal durch die oben eingebundene Library sehen und diese auf Richtigkeit prüfen? Ich finde den Fehler leider nicht, aber ich weiß dass er in der Lib steckt.
:
Bearbeitet durch User
Hallo erstmal an alle :) Ich habe jetzt Ulrich Radigs Lib auf meinem mega16. Mein Problem ist nun, dass mein LCD nichts mehr anzeigt sobald ich auf INT0 etwas anlege, in diesem Fall der DCF-Datenpin. Weiß jemand woran das liegen kann? Falls sich jemand meinem Problem widmet kann ich gerne die hierfür erforderlichen Dateien anhängen. need help :/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.