- Labornetzteil AliExpress         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: DCF77 nicht invertiertes Signal verwenden

  1. #1

    DCF77 nicht invertiertes Signal verwenden

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich will mit einem AVR eine Zeitschaltuhr realisieren. Diese soll z.B. um 5 Uhr frühs automatisch das Licht anschalten und um 7 uhr wieder aus. Natürlich Sekundengenau Bei Reichelt kostet ein DCF77 Empfänger über 10 EUR. Also habe ich mir überlegt, ob ich nicht den Funkempfänger aus Funkuhren verwenden könnte. Naja eigentlich nciht lang überlegt und eine Funkuhr ausgeschlachtet. Ein Ferritstab und eine Platine ähnlich wie die bei Reichelt viel mir in die Hände. Sogar mit beschriftung. VCC, GND, PON, Out.

    Also gleich mal an den AVR Angeschlossen und den von der Bascom Hilfe bereitgestellten Code verwendet. Es tut sich selbst nach einer halben Stunde nichts. Bis ich dann herausgefunden habe, dass man PON nach Masse schalten muss, damit der DCF77 Empfänger überhaupt was macht. Und siehe da es tut sich was im Terminal. Nach bischen mehr als 1 1/2 minuten kam das dabei raus:

    (Anhang)

    Es funktioniert. Die freude ist groß. Aber mit dem Code kann ich so nicht viel Anfangen. Bin dann nach kurzem Surfen auf die RN Wiki gekommen und habe dort alles übernommen:
    http://www.rn-wissen.de/index.php/DC...Bascom-Library

    Ich bin schon den ganzen Tag damit beschäftigt irgendetwas herauszubekommen und anzuzeigen aber es zeigt nichts an. Also nur, dass die Uhr hochzählt aber nicht, dass diese sich Stellt.

    Habe einiges ausprobiert um zum Schluss dann doch den Pind.3 zu nehmen, Kann ja daran liegen, dass ich nciht alles umgeschrieben habe für den Eingang des Signals. Aber selbst da nichts. Jetzt habe ich irgendwo gelesen, dass ein invertiertes Signal verwendet wird. Und im Bascom Code (von der Hilfe) ist Standardmäßig ein nichtinvertiertes Signal eingestellt. Daraus schließe ich, da mein DCF77 Empfänger ja bei derm Bascom Code funktoiniert hat, dass dieser ein nicht Invertiertes Signal liefert.

    Wie kriege ich dieses denn nun invertiert (Softwaremäßig)?

    Meine Teststellung:
    DCF77 Empfänger an PD.3
    Atmega 8 mit 8 Mhz Quarz
    Display 2x16

    Hoffe ihr könnt mir helfen. Ich verzweifel langsam.

    MfG

    Florian
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken dcf77.1.png  

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Die neueren Bascom Versionen haben bei Config dcf einen Parameter, ob invertiert, oder nicht. Als 2. Möglichkeit lässt sich auch die DCF_77.lib anpassen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Ja das weiß ich auch, dass man das bei der Config dcf einstellen kann, ob invertiert oder nicht. Aber in dem vom RN Wiki bereitgestellten Code finde ich kein Config DCF bzw. wo stelle ich das in der dortigen .lib ein?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Bascom bringt seine eigene LIB mit. Schau einfach in die Hilfe.
    Bei dem Code auf RN-Wiki ist doch eine gute Doku bei.
    Im Prinzip alle Abfragen des Eingangpins invertieren. einfach

    sbis
    gegen
    sbic
    tauschen und umgekehrt wenn ich das richtig gesehen habe.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Florian:

    peterfido hat Recht.

    Du tauschst einfach im Code der Library, Abschnitt 2, einen Befehl (sbis) aus gegen sbic:
    Code:
    dcf77_start:
     *lds Counter,{DCF77Counter}  ;Pausenzeit-Zähler laden
     *lds Parity,{DCF77Parity}    ;Fehler-Flag + 1-Zähler laden
      sbic PIND,PIND3             ;Input-Pin für DCF-Empfänger
      rjmp dcf77_5                ;high:  Bit auswerten!
      inc Counter                 ;low: Pausenzeit zählen!
      brne dcf77_3
    dcf77_1:
    Gruß Dirk

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Kehnert
    Beiträge
    1.159
    War ja ne billige Funkuhr, die Du ausgeschlachtet hast. Das von Dir
    genannte Funkuhrmodul kriegt man doch schon für unter 9 Euro und es
    hat einen invertierten und nichtinvertierten Ausgang. Aber ist ja schön,
    dass es bei Dir nun funktioniert. Ich habe übrigens den nichtbenutzten
    nichtinvertierenden Ausgang zur Anzeige der optimalen Antennenstellung
    benutzt. Ist jedoch meisst nicht notwendig. VG Micha

  7. #7
    @harware.bas: Du kannst ja hellsehen. Ja es funktioniert jetzt. Ich danke euch für die Hilfe! Jetzt läufts.

    Und ja die Funkuhr war billig. Eigentlich Gratis Habe davon noch 2 Stück. Waren mal bei einer bestellung Gratis dabei und da habe ich komischerweise 3 mal hintereinander bestellt. Aber die Uhren sind nicht gerade schön. Also wieso sich nicht die 9 EUR sparen (macht bei 3 Stück schon 27 EUR).


    Jetztr allersings zu einem anderen Problem: Ich will ja einen anderen Port benutzen. Habe das hier in der _soft.bas geändert:

    Code:
    Config Pinc.0 = Input                                       'DCF77 Eingang
    Set Portc.0                                       'Pullup ein
    Und das in der.lib Datei:

    Code:
    [Dcf77_soft]
    ;Eingang für DCF77-Empfänger-Anschluss:
    .equ Pinc = &H10 ; Pinc
    .equ Pinc0 = 0 ; 0 = Pin 0
    Also ich will den Port C0 verwenden. Nur passiert jetzt wieder nichts. Kein Empfang.Muss ich noch mehr verändern? Oder hab cih zu viel verändert oder was ist hier das Problem?

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Probier mal:
    .equ Pinc = &H13 ; Pinc

    Gruß Dirk

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Kehnert
    Beiträge
    1.159
    Also HHP! Hellsehen? Nö! Aber Deine Bemerkung, dass sich nach 1 1/2
    Minuten bei Dir was tut, war eigentlich der Grund, dass es bei Dir
    funktionieren müsste. Manchmal dauert die DCF-Synchronisierung
    noch VIEL länger. VG Micha

  10. #10
    @Dirk: Hm nein damit tut sich auch nach 20 min nichts.
    @Hardware.bas: Liegt vll daran, dass ich auf einem Berg Wohne und das bloß nur einige 100 kM entfernt von Frankfurt. Deshalb vll. die schnelle Synchronisation.

    EDIT: Oder muss es zwingend ein Interruptfähiger Eingang sein? Sehe gerade, dass PD.3 Am Atmega 8 Int1 ist. Also Interruptfähig. PC.0, also daran wo cih den Empfänger anschließen möchte, ist nciht Interruptfähig. Aber im Code steht, dass man jeden I/O Pin benutzen kann hmmm...

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad