- 12V Akku mit 280 Ah bauen         
Seite 6 von 21 ErsteErste ... 4567816 ... LetzteLetzte
Ergebnis 51 bis 60 von 204

Thema: Library für DCF77 Dekodierung

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

    DCF Empfang starten

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute,

    der DCF-Empfang kann auf 2 Arten zu jeder Stunde gestartet werden.
    Bei der Version mit Uhrenquarz:
    Code:
      If _min = 0 And Dcfstatus.7 = 0 Then            '1x pro Stunde:
        Dcfstatus.5 = 0                               'Zeit inaktuell
        Dcfstatus.6 = 0                               'Datum inaktuell
      End If
      'Wenn Uhr oder Datum inaktuell, dann nach DCF stellen:
      'Timer0 ist nur aktiv, solange DCF-Empfang läuft!!!
      If Dcfstatus.5 = 0 Or Dcfstatus.6 = 0 Then
        Dcfstatus.7 = 1
        Enable Timer0
      Else
        Dcfstatus.7 = 0
        Disable Timer0
      End If
    ... und ohne Uhrenquarz:
    Code:
      If _min = 0 And Dcfstatus.7 = 0 Then            '1x pro Stunde:
        Dcfstatus.5 = 0                               'Zeit inaktuell
        Dcfstatus.6 = 0                               'Datum inaktuell
      End If
      'Wenn Uhr oder Datum inaktuell, dann nach DCF stellen:
      If Dcfstatus.5 = 0 Or Dcfstatus.6 = 0 Then Dcfstatus.7 = 1 Else Dcfstatus.7 = 0
    Bei dieser Version darf natürlich der Timer nicht disabled werden, weil dann die Softuhr stehen bleibt.

    Gruß Dirk

  2. #52
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Hi Progger!

    Bei Bascom 1.11.8.3 kommt bei mir der Fehler

    ISR already defined TIM0_ISR

    Wie gibts das?? Stimmt nicht

  3. #53
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Wo kann ich die DCF77_Soft lib downloaden?

  4. #54
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Ich bin vielleicht etwas LÄSTIG aber kann mir jemand genau sagen wie ich den DCF-Empfang in einem vorhandenen Code einbinden kann??
    Mittlerweile stehen hier mehrere Codes und ich kenn mich einfach nicht mehr aus. Ich hätte gerne mal etwas Durchblick und da ich kein Masterprogrammer bin wäre es nett wenn jemand so Keimfrei wäre einen absolut lauffähigen dcf-Code mit der richtigen lib oder lbx hier reinzustellen.

    Bussie!!!!

  5. #55
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi bertl100,

    wo hakt's denn?

    Die "DCF77.lib" ist das Teil, dass ich als 1. Codeblock in meinem Beitrag vom 15.9. um 17.32 Uhr angegeben habe. Einfach alles da raus kopieren und als DCF77.lib in das LIB-Verzeichnis von Bascom tun! Das wars!

    Dein eigenes Programm (muttu noch selbst schreiben!) zur Darstellung der Zeit und zum DCF-Empfang muss folgendes machen:

    a) "DCF77_soft.bas" mit $include "DCF77_soft.bas" einbinden, wenn du keinen Uhrenquarz benutzt.
    ODER
    b) "DCF77.bas" mit $include "DCF77.bas" einbinden, wenn du einen Uhrenquarz benutzt.
    [Beide Progs sind in meinem Beitrag vom 5.9., 17.38 Uhr]

    c) Die ISR einbinden. Ein Beispiel dafür ist der 2. untere Codeblock in meinem Beitrag vom 5.9., 17.32 Uhr.

    Dein Programm muss jetzt nur noch die BASCOM-Uhrzeit time$ und date$ ausgeben. Am 6.9., 20.26 Uhr habe ich Beispiele ergänzt, wie man den DCF-Decoder ein- und ausschaltet.

    Alles klar?

    Gruß Dirk

  6. #56
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Jetzt ist es mir schon klarer, aber mich würde der Ablauf der .lib interessieren damit ich selbst auch Änderungen vornehmen kann.

    1. Erfolgt die Synchronisation nur jede Stunde oder muss etwas permanent Abgearbeitet werden?(Irgendwo steht alle 25mS)
    Wäre interessant, da in meiner Hauptschleife schon 2 Schnittstellen abgefragt werden müssen.

    2. Bei Soft gibt es noch andere Unterfunktionen-----GETTIME---GETDATE........
    Wozu brauch ich die?

    3. Steht Datum und Zeit bei soft dann in den TIME und DATE Variablen?
    Wenn ja, kann ich diese Variablen formatieren damit ich sie über SPI schicken kann?--Byteweise---Habe ein SPI Display mit Touch


    Es ist mir schon klar, dass hier keiner eine detallierte Beschreibung
    machen wird, aber ich hoffe ihr könnt mir in groben Zügen den Ablauf schildern.

    MFG

    Bertl

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

    Fragen

    Hallo Bertl,

    der DCF-Empfang (bzw. die Decodierung) in der DCF77.lib erfolgt NUR, wenn du das willst.
    Mit Dcfstatus.7 = 0 schaltest du ihn AUS und mit Dcfstatus.7 = 1 EIN.

    Das kannst du z.B. jede volle Stunde machen (siehe mein Beitrag hier am 6.9., 20.26 Uhr!). Oder wann du willst.

    Die DCF77.lib braucht einen Timer und muss alle 25ms aufgerufen werden. Schau dir die DCF77_soft.bas und DCF77.bas an! In diesen Progs, die du in dein Programm - wie gesagt - mit $include einbinden kannst, wird der Timer dafür definiert. Du brauchst dich darum nicht zu kümmern. Die ISR kannst du auch so übernehmen, wie ich sie gepostet hatte.

    Dein Prog sieht also z.B. so aus:
    Code:
    'Deine Definitionen
    $include "DCF77.bas" 'Ein Uhrenquarz vorhanden!
    
    Do
     Gosub Anzeige_der_BASCOM_Zeit 'Selbst schreiben!
     If _min = 0 And Dcfstatus.7 = 0 Then            '1x pro Stunde: 
        Dcfstatus.5 = 0                               'Zeit inaktuell 
        Dcfstatus.6 = 0                               'Datum inaktuell 
      End If 
      'Wenn Uhr oder Datum inaktuell, dann nach DCF stellen: 
      'Timer0 ist nur aktiv, solange DCF-Empfang läuft!!! 
      If Dcfstatus.5 = 0 Or Dcfstatus.6 = 0 Then 
        Dcfstatus.7 = 1 
        Enable Timer0 
      Else 
        Dcfstatus.7 = 0 
        Disable Timer0 
      End If 
      'Hier noch andere wichtige Dinge!
    Loop
    End
    
    'Nur nötig OHNE Uhrenquarz!!!
    'Getdatetime:                                      'Nicht genutzt! 
    'Setdate: 
    'Settime: 
    'Return 
    
    'ISR - Interrupt Routine DCF77 
    Tim0_isr: 
      Timer0 = Startwert 
      Call Dcf77 
    Return 
    
    Anzeige_der_BASCOM_Zeit:
      'Anzeige der Zeitvariablen!
    Return
    Das Unterprogramm "Anzeige_der_BASCOM_Zeit" muss nur die BASCOM-Variablen für die Zeit, also _hour, _min, _sec, ... auf dem LCD oder mit Print auf der RS232 ausgeben. Das schaffst du locker!

    Wenn du KEINEN Uhrenquarz hast, nimmst du die DCF77_soft.bas anstelle von DCF77.bas, in der ISR machst du aus jeder 0 eine 2. Vor den Befehlen Getdatetime ... machst du 4x das ' weg und entfernst Enable Timer0 und Disable Timer0.

    Alles klar?
    Muss funktionieren! Sonst: Bau 'mal alles so zusammen, wie du meinst und poste dein Prog dann hier, dann kann man besser was dazu sagen!

    Gruß Dirk

  8. #58
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    @ Dirk

    Ich finde es echt super von dir, dass du hier eine kleine Beschreibung für mich reinstellst
    Ich bekam immer einen Compillierfehler.
    Genau das ist es was ich brauche. Ich bekomme wahrscheinlich Morgen meine neue Eigenbauplatine. Dann werd ich es sicher zum laufen bringen.

    Herzlichen Dank!!!!!!!

  9. #59
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Ich habe jetzt dein Programm in meines integriert.
    Schaus dir mal an. Ich lass die Zeit nur im Sekundentakt anzeigen da mein SPI Touch Display ziemlich viel zu Tun hätte.

    Von der Struktur her müsste es nun Passen aber ich hab meine Platine noch nicht bekommen, ergo kann ich das Programm erst dann an der Hardware testen.

    MFG

    Bertl
    Angehängte Dateien Angehängte Dateien

  10. #60
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Wie stell ich den Timer für meinem 14,745600 MHz Quarz ein?

Seite 6 von 21 ErsteErste ... 4567816 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests