-
        

Ergebnis 1 bis 8 von 8

Thema: config DCF77 ausprobieren.....

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.10.2006
    Beiträge
    29

    config DCF77 ausprobieren.....

    Anzeige

    Hallo

    ich wollte mal die config DCF77 Routine ausprobieren, bin aber schon auf meine erste Hürde gestoßen. Ich habe folgende Zeile in mein Programm für den Mega128 eingebaut:
    Config Dcf77 = Pina.3 , Timer = 0 , Inverted = 0 , Check = 1 , Update = 2 , Updatetime = 1 , Gosub = Sectic

    und erhalte folgende Fehlermeldung in der Zeile:

    Unknown Interrupt [Compare0]

    wobei der Timer0 asynchron, also mit Uhrenquarz läuft. Aber es ist egal welchen Timer ich nehme, der Fehler bleibt der selbe.

    Hat jemand eine Idee???

    Gruß Mirko

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    08.10.2006
    Beiträge
    29
    Ok, ich nehme alles zurück.... Wenn ich Timer = 1 eingebe, dann kommt keine Fehlermeldung. Aber entweder habe ich das nicht richtig verstanden oder wie??? Ich brauche doch den Timer0. Wegen Uhrenquarz usw. oder nicht ???

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Vorerst wird nur Timer=1 unterstützt.
    Laut MCSELEC ist für die anderen Timer ist noch eine Überarbeitung der DAT - Files notwendig.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Micralestes
    Ok, ich nehme alles zurück.... Wenn ich Timer = 1 eingebe, dann kommt keine Fehlermeldung. Aber entweder habe ich das nicht richtig verstanden oder wie??? Ich brauche doch den Timer0. Wegen Uhrenquarz usw. oder nicht ???
    Darum brauchst du dich nicht zu kümmern, das macht Config DCF77 für dich. Auch die Softclock mit allen Variablen wird erzeugt, also keine mehr konfigurieren. Über die Angabe Gosub Sectic im Config wird dann auch im Sekundentakt das Sectic Label angesprungen, genau wie früher bei der Softclock.
    Ich würde übrigens nicht einmal täglich um 1.00 Uhr morgens die Zeit synchronisieren, sondern um 3.00 Uhr. Dann bekommst du den Wechsel zwischen Sommer- und Winterzeit immer sofort mit, der ja zu dieser Zeit durchgeführt wird.

    Gruß

    Rolf

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    08.10.2006
    Beiträge
    29
    Danke für die Antworten!

    Ich habe mir die Hilfe dazu noch mal angesehen und musste feststellen, wenn ich richtig gelesen hätte, hätte ich Euch die Arbeit sparen können.

    Erstmal vielen Dank.....

    Gruß Mirko

    Danke für den Tipp mit 3 Uhr, das ist wirklich gut......

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    Neue Frage

    Beim Ausprobieren von CONFIG DCF77 haben sich bei mir noch drei Fragen ergeben:

    1. Lt. Anleitung wird bei UPDATE=1 die Softclock stündlich nach DCF gestellt. Der Parameter UPDATETIME muss dann 0..23 sein. Warum?
    Wenn stündlich gestellt werden soll, macht UPDATETIME doch nur Sinn, wenn man die Minute angeben kann, in der jede Stunde gestellt werden soll. Also müßte UPDATETIME 0..59 sein.
    Genauso liegt es bei UPDATE=2. Da wird einmal pro Tag nach DCF gestellt. UPDATETIME kann lt. Anleitung 0..59 sein. Das macht aber wenig Sinn, weil ich wahrscheinlich die Stunde angeben möchte, zu der täglich gestellt werden soll, also 0..23.

    Oder habe ich da was falsch verstanden?


    2. Zum Parameter TIMER1SEC:
    Wenn er 1 ist, wird die Softclock durch den internen 1-Sekunden-Interrupt betrieben. Dann darf ich CONFIG CLOCK = SOFT/USER nicht einfügen, oder?
    Ist er 0, muss ich dann CONFIG CLOCK = SOFT zusätzlich einfügen (Hardware: Uhrenquarz an TOSC)?


    3. Zu den Variablen:
    Welche Variablen werden durch CONFIG DCF77 zusätzlich zu den Softclock-Variablen noch angelegt? Eine Liste wäre schön.

    Gruß Dirk

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Hallo Dirk,

    UPDATE/UPDATETIME
    Du hast recht, hier ist in der Hilfe etwas falsch vermerkt.
    UPDATE = 1 ist stündliches Update und damit der Parameter UPDATETIME zwischen 0 und 59 zu setzen. Damit wird die Minute angegeben, bei welcher die DCF77 Auswertung gestartet wird.
    UPDATE = 2 ist tägliches Update und damit der Parameter UPDATETIME zwischen 0 und 23 zu setzen. Hier ist es die Stunde bei welcher die Auswertung gestartet wird.

    TIMER1SEC
    Es wird immer nur ein Timer verwendet. Derzeit wird nur Timer = 1 unterstützt, es sollen aber in zukünftigen Releases alle Timer incl. RTC-Quarz (32.768Hz) unterstützt werden. Der Timer wird im CTC-Mode betrieben. Der Timer zählt bis zum Compare-Wert hoch, löst einen Interrupt aus, stellt sich auf 0 und beginnt wiederum mit dem Hochzählen. Wird der Parameter TIMER1SEC = 1 gesetzt, wird während der synchronisationsfreien Zeit der Compare-Wert so verändert, dass nur mehr 1 Interrupt pro Sekunde ausgelöst wird. Wird der DCF-Teil zur nächsten Zeit-Synchronisation wieder gestartet, wird dieser Compare-Wert wieder zurückgestellt.
    Wird CONFIG DCF77 = .... verwendet, werden alle CLOCK - relevanten Variablen und Konstanten gesetzt. Eine zusätzlichens Kommando CONFIG CLOCK = SOFT|USER ist daher nicht notwendig.

    Variablen:
    Die erzeugten Variablen sind im Compiler-Report ersichtlich.


    DCF_TIMERCOUNT - Hier wird die Impuls- und Pausenlänge gezählt bis zur nächsten Pegeländerung.

    DCF_SEC - Zähler für DCF77 Impulse beginnend beim Minuten-Impuls

    Die empfangenen DCF77 Zeitwerte werden in die entsprechenden Variablen geschrieben.
    DCF_MIN
    DCF_HOUR
    DCF_DAY
    DCF_MONTH
    DCF_YEAR
    DCF_WEEKDAY
    DCF_FLAGS - Bit 13 bis 20 (Winterzeit, Sommerzeit, Ankündigungbits)

    DCF_PARITY - Variable zur Parity-Auswertung
    DCF_BITS - Hier werden die empfangenen Bit-Werte links eingeschoben. Ein Zwischenspeicher der Bits bis zur Abspeicherung in den DCF-Variablen DCF_Min ... DCF_FLAGS
    DCF_STATUS - Siehe Hilfe-Beschreibung
    _WEEKDAY - Wochentag aus DCF-Empfang wird bei Zeitsynchronisation hier hineinkopiert.
    CLOCK_SECPART - Bei jedem Timer-Interrupt wird auch der CLOCK-Teil angesprungen. Hier werden die Interrupts mitgezählt, um feststellen zu können, wann eine Sekunde um ist.

    Und hier die bekannten CLOCK-Variablen
    _SEC
    _MIN
    _HOUR
    _DAY
    _MONTH
    _YEAR
    DATE$
    TIME$

    Bei DEBUG=1 werden die Variablen
    BDCF_IMPULS
    BDCF_PAUSE
    erstellt. Hier wird die Interruptanzahl für Impuls und Pause eingeschrieben.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    Danke

    Hallo Josef,

    vielen Dank für die ausführliche Antwort!
    Ich denke, jetzt kann das Testen weiter gehen.

    Gruß Dirk

Berechtigungen

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