Ankündigung

Einklappen
Keine Ankündigung bisher.

extern über Bus synchronisierte Uhr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Wie gesagt, meine Jung Raumcontroller haben für diesen "readRequest" ein eigenes 1-bit KO. Ist also genau genommen ein kleiner workaround. Die Logik das richtig auszuwerten und dann auf der Uhrzeit-GA zu antworten ist dann wo anders.

    Kommentar


      #17
      also ich hab meine KNXClock mal implementiert.
      Wirklich überrascht hat mit dich Abweichung des internen Taktes gegenüber dem Zeitgeber.

      Zwischen dem Empfang zweier Uhrzeittelegramm die alle 10min versendet werden und einen Zeitstempel enthalten vergingen:

      59.999.328 µs (+- 100µs)

      Also eine Abweichung von 700µs pro 10min, was eine kumulierte Abweichung von 100ms pro Tag ergibt.
      Da aber die Uhr ja mit jedem Telegram alle 10min neu gestellt wird, liegt die absolute Abweicung eben bei nur 700µs.
      Durch das "merken" des Korrekturfaktors wird die nochmal deutlich reduziert und ist viel genauer, als man es überhaupt benötigt.

      Leider zeigt die Lib ein unschönes Verhalten:
      Beim initialisieren des KO wird zwar ein ReadRequest gesendet und der ReadResponse ausgwertet, aber das KNXEvent wird nicht ausgelöst.
      Daher hab ich etwas in der Lib gegraben und

      Code:
       /**
         *  Com Object KNX Bus Update request
         * Request the local object to be updated with the value from the bus
         * NB : the function is asynchroneous, the update completion is notified by the knxEvents() callback
         */
        voidKnxDevice::update(byteobjectIndex);
      gefunden. Konnte es noch nicht ausprobieren. Aber da es beim Init funktioniert, scheint die Methodik zu passen.

      Kommentar


        #18
        Glückwunsch, SirSydom. Meine Softwareuhren sind da wesentlich ungenauer. Durch eine tägliche Korrektur bekomme ich aber eine akzeptable Genauigkeit über das Jahr hin. Schließlich geht es ja nur darum, wann morgens die Heizung startet o.ä. und nicht um eine µs-genaue Echtzeitsteuerung.

        Kommentar


          #19
          man darf auch nicht vergessen das der knx kein echtzeit bus ist, d.h. je nach busauslastung kann es kürzer oder eben länger dauern bis das telegramm tatsächlich am bus landet.....

          Kommentar


            #20
            Zitat von Albatros62 Beitrag anzeigen
            Schließlich geht es ja nur darum, wann morgens die Heizung startet o.ä. und nicht um eine µs-genaue Echtzeitsteuerung.
            Genau so ist es !
            Die auf Anhieb erzielte Genauigkeit liegt auch deutlich (!) über meinen Anforderungen und meinen Erwartungen. Aber vielleicht hab ich auch einfach zufällig einen sehr guten µC erwischt, bei dem der Takt so gut passt.

            Kommentar


              #21
              Nachtrag:

              bzgl. Knx.update(COMOBJ):

              Wenn man das A Flag setzt (|= 0x02), dann funktioniert das so, wie man sich das vorstellt!

              Kommentar


                #22
                Wie ist das dann? Gibt's das als Software-Lib die man einbinden kann oder wie läuft das?

                Kommentar


                  #23
                  ja der Plan ist das das als Klasse nutzbar sein soll. Ist nix großes.. 150loc.
                  Komme aber aktuell nicht zum entwickeln, ich bekomme nächste Woche eine PV-Anlage und war da die letzten Wochen am planen und vorbereiten.

                  Hab noch ein Problem mit UTC / Lokalzeit bzw Sommerzeit wegen einem MDT Bug

                  Kommentar

                  Lädt...
                  X