- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 21 ErsteErste 1234513 ... LetzteLetzte
Ergebnis 21 bis 30 von 204

Thema: Library für DCF77 Dekodierung

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    70
    Beiträge
    277

    Re: Softclock

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von Dirk
    Hallo Henrik,

    Ja, wie soll sie den auch weiterlaufen, ohne getaktet zu werden?
    Das habe ich schon verstanden. Meine Frage ist eigentlich, wie ich sie wieder "takten" kann.
    Ganz einfach, indem du endlich den Uhrenquarz an TOSC1 und TOSC" hängst. Nur und ausschließlich damit funktioniert Bascoms Softclock. Wie oft denn noch?
    Bei der Original-Lib von albundy wird ja auch seine Softclock (mit anderen Variablen) "getaktet" (bzw. in der Interruptroutine hochgezählt), das möchte ich mit der Softclock auch machen.
    Na die braucht und bekommt ja auch brav ihren 40Hz Takt via Interrupt. Das bedeutet gleichzeitig, daß bei Frequenzen über 8 Mhz zwingend der (wertvolle) 16bit Timer1 benutzt werden muss. Der Vorteil der Nutzung des langsamen Uhrenquarzes bei Bascoms Softclock im asynchronen Modus liegt darin, daß der Interrupt nur 1x pro Sekunde hereinplatzt, die Interruptroutine aber mit voller Prozessorgeschwindigkeit abgearbeitet wird.

    Grüße
    Henrik

  2. #22
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803

    Softclock

    Hallo Henrik,

    verstanden! War sehr deutlich.

    (Dabei will ich ja eigentlich nur die [highlight=red:fd757fffd3]Variablen[/highlight:fd757fffd3] der Softclock und eigentlich nicht den Takt (32768Hz Quarz an TOSC) nutzen. Aber ich will hier 'mal nicht weiter nerven und mache noch ein paar Versuche, bevor ich aufgebe.)

    Also Henrik, keep cool und danke für die Hilfe!

    Gruß Dirk

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    70
    Beiträge
    277

    Re: Softclock

    Hallo Dirk,

    Zitat Zitat von Dirk
    verstanden! War sehr deutlich.
    böse gemeint war das nicht, das Thema ist nur komplex und mir fehlt die Zeit das alles im einzelnen aufzudröseln .
    (Dabei will ich ja eigentlich nur die [highlight=red:d9beb835f0]Variablen[/highlight:d9beb835f0] der Softclock und eigentlich nicht den Takt (32768Hz Quarz an TOSC) nutzen. Aber ich will hier 'mal nicht weiter nerven und mache noch ein paar Versuche, bevor ich aufgebe.)
    Na ja, alleine mit den Variablen wirst Du nicht glücklich. Mit den Variablen soll ja etwas passieren. Date$ und Time$ sollen berechnet werden, _min, _sec, _hour sollen weiterzählen usw. Sonst passiert genau das, was Du festgestellt hast: Es wird einmal auf den eingelesenen Stand gebracht und da bleibt es dann, wenn nicht fortlaufend aktualisiert wird.

    Als Hilfe zur Selbsthilfe versuche ich kurz zu erklären. was im Groben bei Config Clock passiert:

    1) Es werden die Variablen angelegt.
    2) Es wird die datetime.lib eingebunden.

    Abhängig von soft oder user wird nun entweder alles in datetime erledigt (im Sekundentakt) oder bei user werden die Label:

    getdatetime:
    settime:
    setdate:

    im Hauptprogramm oder einer weiteren Lib angesprungen. Auch das passiert im Sekundentakt, den Timer2 mit dem von Dir so ungeliebten Uhrenquarz zur Verfügung stellt.
    Der Programmierer muss nun dafür sorgen, daß diese Label entsprechende Subroutinen enthalten. Es müssen nur die Uhrzeit und das Datum (dezimal) zur Verfügung stehen, den Rest errechnet wieder die datetime.lib.

    Aus den oben genannten Voraussetzungen geht hervor, daß die DCF77 Routine naturlich laufen müsste, damit sie datetime die entsprechenden aktuellen Informationen geben kann.

    Abgesehen davon, daß man für effizientes Arbeiten die DCF77.lib nicht unerheblich umschreiben müsste, hätten wir auch das Ziel des weniger störenden Interrupts nicht erreicht. Im Gegenteil: Statt eines Interrupts funken nun zwei in der Gegend herum.

    Bei meiner Modifikation umgehe ich das Problem, indem ich einfach nach erfolgter Synchronisation die Daten an Bascoms Softclock die Daten übergebe, den DCF77 Timerinterrupt abschalte und den Softclockinterrupt einschalte. Von nun an rechnet brav Softclock mit all seinen Vorteilen, bis ich wieder aktualisieren möchte (wenn Bedingung erfüllt - wieder Timer umschalten, Synchronisieren, Softclock aktualisieren, wieder Timer umschalten).

    Wenn Du nun nur die zusätzliche Funktionalität der Softclockvariablen haben möchtest, musst Du das im Hauptprogramm selbst nachbilden. Im DCF77 Interrupt geht das nicht, der würde zu lang.

    Hoffe das macht die Sache etwas klarer.

    BTW: Du nervst nicht, nur muss ich hier mit einem Projekt fertigwerden (auch so eine Fleißarbeit) von dem dann mehrere Schulklassen abhängen... Die Jungs und Mädels würden es mir recht übelnehmen, wenn ich sie nicht rechtzeitig mit Hard- und Software füttern würde .

    Viele Grüße
    Henrik

  4. #24
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803

    Softclock lebt

    Hallo Henrik und albundy,

    so, nach einer durchgemachten Nacht und nachdem ich heute tagsüber 2x von meinem Chef am Arbeitsplatz geweckt werden mußte, funktioniert es jetzt.

    Ergebnis: Die Softclock läuft jetzt nachweisbar (Ausgabe von DATE$ und TIME$) permanent und OHNE den Uhrenquarz. Zeit und Datum sind in Bascom jederzeit abfragbar.
    Das wollte ich wissen!!!

    Ich nehme dafür die DCF77_soft.lib von albundy!!

    @Henrik: Es ist mir klar, daß ein 40Hz-Interrupt für den Dauerbetrieb der Softclock mit DCF-Aktualisierung eine hohe Ressource ist. Das geht sicher nur, wenn die anderen Aufgaben des M32 das zulassen. Bei mir ist das der Fall. Mir ist auch klar, dass ein Uhrenquarz wesentlich besser wäre. Aber man macht im Leben viele sinnlose Dinge (heiraten o.ä.).

    Gruß und vielen Dank an albundy für die lib!
    Dirk

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    02.04.2006
    Beiträge
    14
    N ábend zusammen

    als absoluter Neuling habe ich schon viel gelesen und auch schon einiges ausprobiert, einiges funktionierte, anderes nicht.
    Da ich gerade erst das gehen lerne, von laufen kann noch nicht die Rede sein, möchte ich hier zum Thema mal was fragen.

    Wollte als Projekt eine Uhr mit DCF 77 programmieren.Habe mir das Programm nebst Lib hier runtergeladen.
    Meine Frage in der Lib wird der Pin A7 als DCF Eingang gesetzt, ich arbeite mit einem Atmega 8L dort gibts ja keine A Ports also wollte ich den Port C5 verwenden.Bei stöbern im Netz habe ich gefunden das $15 für die C Ports in der Lib steht muß, nicht $19 wie für A. Ist das richtig ??
    Habe die Lib dann auf $15 Port 5 umgeschrieben. Ebenfalls im Programm den Port auf PinC.5 gesetzt, und reingeladen.
    Die Uhreit fängt wie immer normal an zu laufen, jedoch findet keine Einstellung via DCf statt. Ach ja DCF Modul von Reichelt, "Ein" auf GND damit der RX immer läuft.Habe an Pin C5 ja statisch 5Volt durch den Befehl =1 im Programm, dagegen arbeitet jetzt das DCF Signal.Ist da der Fehler zu suchen, oder hat jemand eine Idee wo es klemmt.
    Habe den Programmteil Debuggen auch mal aktiviert, Pausenlänge und Impuls bleiben auf 0 stehen, kein Signal also.
    Ich hoffe ich habe das richtig verstanden, das das DCF Signal die Uhr stellt, oder wird der Impuls nur zum synchronisieren benutzt?

    Vielen Dank für Eure Antworten

    HP

  6. #26
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    70
    Beiträge
    277
    Zitat Zitat von HP
    N ábend zusammen

    Meine Frage in der Lib wird der Pin A7 als DCF Eingang gesetzt, ich arbeite mit einem Atmega 8L dort gibts ja keine A Ports also wollte ich den Port C5 verwenden.Bei stöbern im Netz habe ich gefunden das $15 für die C Ports in der Lib steht muß, nicht $19 wie für A. Ist das richtig ??
    Ne, das ist schon mal falsch. Die betreffenden Zeilen müssten Für Portc.5 für den Mega8 so aussehen:
    Code:
    [Dcf77]
    Dcf77:
    .equ DCF_Port = $13         ;$19 = Pinc - gewünschter Port
    .equ DCF_Pin = 5            ;5 = Pin 5 - gewünschter Pin des Ports
    Versuche es mal damit .

    Grüße
    Henrik

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    02.04.2006
    Beiträge
    14
    Hallo Henrik

    Erstmal vielen Dank für deine Info, Du hattest recht 15 war nicht richtig, 13 wenn auch sonst eine nicht beliebte Zahl war in diesem Fall die Richtige.

    Damit klappte es auf Anhieb, Signale werden empfangen ,...NUR

    die Einstellung im Programm Zeile 29 diesen Befehl muß ich abstellen, sonst arbeitet das DCF Signal gegen den Pullupwiderstand, soll heissen, am IC Port liegen 5V an, gegen die die 4 Volt von DCF nichts ausrichten können.
    Den Port nicht mit Pull Up hochgelegt funktioniert.

    Werde jetzt mal den Debug beenden und sehen was die Uhr so zeigt.

    Danke.

    HP

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    02.04.2006
    Beiträge
    14
    Ja da bin ich schon wieder, nun habe ich die Uhr 5 Minuten laufen lassen,aber die korrekte Uhrzeit wird nicht angezeigt, sollte sie das machen ??
    Das einzig komische was sich ergeben hat ist, das nach ca 4 Minuten eine 3 Sekundenstelle aufgetaucht ist., sowas wie ne zehntelsekunden Stelle.Die Null steht aber fest
    Nach 8 Minuten taucht in Zeile 2 das Datum ?? oder was es sein Soll auf, also haben wir heute den 45.25.20165, welch ein Zeitsprung....
    Die Uhrzeit bleibt davon unberührt, nichts neues dort
    Vielleicht hat ja jemand dazu eine Idee.

    HP

  9. #29
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    70
    Beiträge
    277
    Hallo!

    Richtigen Ausgang genommen (invertiert)?
    Passenden Timer gewählt?
    Mit welchem Quarz arbeitest Du?
    Timerprescaler im Hauptprogramm richtig angepasst?

    Grüße
    Henrik

  10. #30
    Neuer Benutzer Öfters hier
    Registriert seit
    02.04.2006
    Beiträge
    14
    Moin Henrik

    kam erst heute morgen bzw mittag zum lesen deiner Mail.
    Also zum Thema Ausgang, welchen Ausgang meinst du, den vom DCF Empfänger?? der hat ja nur einen, oder spezifiziere mal den Ausgang.
    Invertiert bezieht sich auf welchen Ausgang oder meinst du den Eingangsport am Chip

    Ich benutze den Standardquarz der heisst R036JAB6a, denke das ist der 3,686400Mhz der beim Experimentierboard dabei ist.

    Prescaler steht im Programm auf 1024,

    hm im Orginalprogramm ist ein anderer Quarz drin, vielleicht passt der Prescalerwert nicht zu meiner Quarzfrequenz??

    HP

Seite 3 von 21 ErsteErste 1234513 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test