PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sekunde aus dem RTC als Sekunden Takt



memory
01.04.2018, 17:29
Ist es möglich einen Sekunden Takt mit dem RTC zu generieren unter Bascom als Sekundengenauer Taktgeber ?

021aet04
01.04.2018, 20:44
Das funktioniert, aber einen genauen Typ zu kennen wäre nicht schlecht.

MfG Hannes

memory
02.04.2018, 07:16
Würde mit so was z.B. gehen DS1307 oder ähnlich es wird der Mega16 benutzt.

oberallgeier
02.04.2018, 08:36
Ist es möglich einen Sekunden Takt mit dem RTC zu generieren unter Bascom als Sekundengenauer Taktgeber ?Wie genau soll denn die Sekunde sein? Denn einen Taktgeber braucht man nicht dazu.

Der Sekundentakt ist einfach mit einem Timer zu realisieren. Ich initialisiere beispielsweise auf meinen Controllern üblicherweise den Timer2A auf einen Interrupt von 50 µs und zähle in der ISR von 20000 runter. Beim Ablauf wird der Controller-Heartbeat getoggelt. Hintergrund: bei manchen "Hängern" des Controllers merke ich das am Heartbeat . . . ausserdem ist das ein guter Zähler für allerlei Geschwindigkeitsabfragen. Es gibt einfachere Lösungen :-), ich weiß!

Für "Nur-Heartbeat" bzw. "Nur-Sekundentakt" brauchts auch keine so kurzfristige Timereinstellung zu sein. Die Genaugikeit ist wie bei der RTC vom Quarz abhängig: ich habe das als Sekundenuhr mal gestoppt und bin auf knapp zehn Sekunden Fehler pro Tag gekommen. Ich nutze das aber nirgendwo als genaue Zeitangabe.

021aet04
02.04.2018, 08:52
Im Datenblatt (https://datasheets.maximintegrated.com/en/ds/DS1307.pdf) steht auf S9 wie man den Ausgang einstellen kann (Control Register). Du musst das 4te Bit (SQWE) setzen, Bit 7 (OUT) darfst du nicht setzen. Dann hast du einen Takt am PIN 7. Welchen Takt du hast kannst du ebenfalls im Control Register einstellen, für 1Hz muss Bit 0 und Bit 1 log. 0 sein.

Man sollte das Datenblatt lesen und auch verstehen, sonst kommst du nicht weit.

MfG Hannes

memory
02.04.2018, 09:45
Das mit dem Quarz stimmt mit den Abweichungen, ich habe einen Quarzoszilator benutzt weil die in der Regel genauer sind. Ich kam auch
auf 10 Sekunden Abweichung Pro Tag was eigentlich für einen Tag nicht tragisch ist. nach mehrere Wochen hm.
Oder ist es möglich eine Uhr rückwärts laufen zu lasen mit Config Clock es sollte eigentlich ein Timer werden.

021aet04
02.04.2018, 10:57
Was man machen kann wäre sich mit einer genauen Zeit zu synchronisieren (DCF77). Das muss man nicht ständig machen, einmal pro Tag oder Woche sollte ausreichen. Wenn die Zeit nicht wichtig ist, sondern ein Timing, kann man mit einer genauen Zeit und der RTC Zeit einen Faktor berechnen und das Timing mit diesem Faktor "kalibrieren". Das Timing über den 1Hz Takt aus dem RTC funktioniert dann aber nicht (müsste man dann über einen Alarm (den man jedesmal stellen muss) machen.

Was soll das genau werden? Dann könnte man genauere Angaben machen. Genauen Takt könnte man auch generell über DCF77 machen.

MfG Hannes

memory
02.04.2018, 12:31
Es soll ein universal Timer werden der über Wochen gehen soll,
für nur 24 Std. wäre mir die 10 Sekunden egal.

oberallgeier
02.04.2018, 12:46
Es soll ein universal Timer werden der über Wochen gehen soll ..Dann wäre doch die DCF77 an nem kleinen Mikrocontroller die erste Wahl. Und täglich, nächtlicher Weise, zwei oder drei Uhr, ein Abgleich mit der DCF77. Und die notwendige Korrektur merken - und entsprechend den Timer ein klitzekleines Bisschen korrigieren. Adaptive Uhrregelung.

021aet04
02.04.2018, 12:53
Dann würde ich berechnen wann der Alarm stattfinden soll und stelle das im RTC ein. Damit die Zeit stimmt solltest (wenn es so genau sein muss) mit dem DCF77 Signal synchronisieren (z.b. 1x/Tag). Wenn die Synchronisation scheitert kannst du z.b. es in 5min nocheinmal probieren.

MfG Hannes

memory
02.04.2018, 13:10
Daran habe ich auch gedacht wie synchronisiert man so was oder gibt es eine einzelnen Sekunden Takt.

021aet04
02.04.2018, 14:34
Du benötigst einen DCF77 Empfänger und verbindest ihn mit dem µC. Dieser gibt das empfangene Signal an den µC weiter. Du musst jedes Bit auswerten. In jeder Minute wird die komplette Zeit inkl. Datum übertragen, zusätzlich gibt es noch Steuerinformationen (z.B. Sommer-/ Winterzeitumstellung,...). Den Aufbau und wie man das Signal auswertet findest du im Internet.
Wenn du die Zeit ausgewertet hast brauchst du diese nur noch in den RTC laden (RTC stellen). Somit ist die Uhrzeit im RTC aktuell. Da in jeder Minute die komplette Zeit übertragen wird, ist es egal wann du synchronisierst, es kann nur sein das der Empfang gestört ist (Wetter,...). Dann musst du es eben etwas später nocheinmal versuchen, oder mehrmals.

MfG Hannes

memory
02.04.2018, 16:40
Ok habe ich schon alles durchgelesen danke, ich werde es Probieren die Dinger kosten ja nicht mehr die Welt.

021aet04
02.04.2018, 17:16
Achte aber darauf das die häufig mit max 3,3V arbeiten, solltest du mit 5V arbeiten benötigst du eine Versorgung und einen Pegelwandler.

MfG Hannes

fredred
16.04.2018, 13:20
Hallo Memory,

Späte Anfrage:
Soll es ein Zeitmesser(Uhr) werden.
Wenn ja könnte ich hier ein Projekt (Kalenderuhr mit DS1307) einstellen.
Zeitkorrektur einmal pro Tag. Ist natürlich nicht so genau wie mit DCF77 aber +/- 3 Sekunden pro Monat ist wohl akzeptabel. Mit Zeitumstellung nochmals eine Anpassung.
Natürlich noch 3 Taster für manuelle Korrektur vorhanden.(Select plus und minus)

Wenn wie vorgeschlagen DCF77 zum Einsatz kommen soll, macht es nach meiner Sicht kein Sinn, diese aktiv und ständig für Zeitkorrektur zu nutzen. Senden doch alle 3 Minuten das volle Packet an Infos.
Benötigst nur ein Pin vom µC und hast immer alles aktuell. Also warum vorab so eine RTC-Zeitbasis.
Wenn kein DCF Signalempfang möglich ist, ist mein erster Vorschlag eine Alternative.

P.S Wer in ca. 999 km Entfernung vom DCF- Sender( Frankfurt A.M.) kein sichern Empfang hat, lebt nicht gesund.
Spaß beiseite. Meist sind es nur die DCF- Empfangsmodule die für instabilen oder nicht Empfang in diesem Bereich verantwortlich sind.

Mit freundlichen Grüßen