- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 2 von 2

Thema: Problem mit Pulsweite messen ( DCF-77 Signal )

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Problem mit Pulsweite messen ( DCF-77 Signal )

    Hallo Forum,

    zu erwarten sind beim Auswerten des DCF-77 Signals Low Pulse von
    80-130 ms ( Low Bit ) & 170-230 ms ( High Bit ).
    Das Programm habe ich zum Teil aus dem Buch Bascom-AVR von Claus
    Kühnel übernommen.

    Frage 1 : Lopulse liefert einen Wert zurück, auf dem Display erscheint eine 3 stellige Zahl die von "020" bis "815" gehen kann. Was ist das für ein Wert ? Millisekunden ?

    Bemerkung 1 : Auf dem Oszi wird das DCF Signal korrekt dargestellt.

    Bemerkung 2 : Nach ca. einer Minute fängt irgendetwas an zu spinnen,
    das Oszi zeigt dann kleiner werdende Pulsweiten von ca. 10 ms an, resete ich den µC, dann sind die Pulsweiten i.O..

    Ich gehe direkt mit dem DCF Signal Pin an Pind.6, an diesem als Eingang geschaltet liegt dann über einen Pull Up 5 Volt, kommt nun ein Impuls, wird dieser Eingang auf low gezogen.

    Wo seht ihr die Probleme ?

    Gruß
    Asic
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    als erstes würde ich beim lesen/schreiben des Timerregister immer beide Register ansprechen also TCNT1H und TCNT1L, und nicht nur mit TCNT1L, denn da kann es auch zu unvorhergesehen ergebnissen kommen, wenn man nur den halben Wert bearbeitet. Timer 1 hat 16Bit Register !
    Am besten noch die Vorgabe von Basscom verwenden:

    Timer1 = 0 bzw. auslesen mit Lopulse = Timer1

    Die Werte die zurückgegeben werden sind die Timerwerte, es wird begonnen zu zählen wenn der Eingang auf 1 ist, und gestoppt wenn er 0 wird, danach wird das Timerregister ausgelesen.
    Um die Zeit zu erhalten kann man sich aus der CPU-Frequenz und dem Prescaler des Timers dessen Takt ausrechnen, und mit dem Ergbnis des Timers multiplizieren.

    CPU 8MHZ, Prescaler = 64, dH. der Timer läuft mit 125kHz.

Berechtigungen

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

Solar Speicher und Akkus Tests