trunx: Zeitmessung mit PC

Hallo Forum,

weiß jemand von euch vllt, ob es einen, z.B. käuflich zu erwerbenden Bausatz nebst Software oder so gibt mit dem man mithilfe der Taktfrequenz des PC' Zeiten im Mikrosekunden messen kann?

bye trunx

--
Die Standard-Antwort: "Bitte benutze die Forum-Suche!" macht die Forum-Suche kaputt, weil die Suche dann nämlich genau vor allem diese dämliche Standard-Antwort, also Müll liefert. Sinnvoller ist stattdessen folgende Standard-Antwort: "Dieses Thema wurde schon vielfach im Forum besprochen, siehe z.B. <a>hier</a> oder <a>da</a> oder benutze die Forum-Suche z.B. mit den Stichworten 'Stichwort1 Stichwort2'." Danke.
  1. weiß jemand von euch vllt, ob es einen, z.B. käuflich zu erwerbenden Bausatz nebst Software oder so gibt mit dem man mithilfe der Taktfrequenz des PC' Zeiten im Mikrosekunden messen kann?

    Taktfreqenz des PC?

    Aus der derzeitigen Taktfreqenz auf irgend eine Zeit zu schließen schlägt fehl - da musstest du schon direkt den Clock Generator der CPU auswerten und selbst dass ist extrem schwierig, da die Taktgeber von Faktoren wie etwa der Spannungsversorgung oder der derzeitigen CPU-Temperatur abhängen (vgl. "Skew") - bei modernen CPUs reden wir hier von einer Abweichung von etwa 0.5 ns pro Zyklus (Referenz-Siganl zu Referenz-Signal).

    1. Hallo, vielen Dank für deine Antwort,
      unter Windows und mit c++ wäre das z.B. die Auswertung von QueryPerformanceCounter()

      bye trunx

      --
      Die Standard-Antwort: "Bitte benutze die Forum-Suche!" macht die Forum-Suche kaputt, weil die Suche dann nämlich genau vor allem diese dämliche Standard-Antwort, also Müll liefert. Sinnvoller ist stattdessen folgende Standard-Antwort: "Dieses Thema wurde schon vielfach im Forum besprochen, siehe z.B. <a>hier</a> oder <a>da</a> oder benutze die Forum-Suche z.B. mit den Stichworten 'Stichwort1 Stichwort2'." Danke.
  2. Hello,

    weiß jemand von euch vllt, ob es einen, z.B. käuflich zu erwerbenden Bausatz nebst Software oder so gibt mit dem man mithilfe der Taktfrequenz des PC' Zeiten im Mikrosekunden messen kann?

    Um welche Genauigkeit soll es denn gehen?
    Soll auch eine Zeitmessung über den Tageswechsel hinaus durchgeführt werden?

    Ältere PCs haben ja noch diverse Schnittstellen, die dafür geeignet wären:

    • Gameport
    • Parallele Schnittstelle
    • serielle Schnittstelle

    Messen kann man dann mit dem Timerinterrupt bzw. dessen Ableger Userinterrupt 1C. Das ist Hardware und daher findet sich das dann auch immer irgendwie in den höheren OS wieder...

    Die Taktfrequenz dieses auch als "Ticker" bekannten Interrupts ist 1sec/18.2 also 18.2x pro Sekunde.

    Gelegentlich fällt mal einer aus. Deshalb die Frage nach der Genauigkeit. Außerdem hat man um den Tageswechsel mit ca. 5-8 ausfallenden Tickern zu rechnen zum Ausgleich der Zeitdifferenz.

    An diesem Ticker hängen auch die Boudraten der seriellen Schnittstelle (Modem) als gerade Teiler.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Die Taktfrequenz dieses auch als "Ticker" bekannten Interrupts ist 1sec/18.2 also 18.2x pro Sekunde.

      Der PHY-Chip bei USB 2.0 läuft mit ziemlich exakt mit 12 MHz, 48 MHz oder 60 MHz - da hat man eine wesentlich höhere Genauigkeit, wenn man das anzapft.

      Was ich grade mit erstaunen festgestellt habe: das USB-Kabel kann bereits bei USB 2.0 als Monopolantenne fungieren:
      http://www.ti.com/lit/an/spraar7/spraar7.pdf

      Vor ein paar Jahren haben sich die Medien ja überschlagen, dass das bei USB 3.0 der große Wurf sein soll, ist aber ein alter Hut.

      1. Hello,

        es gibt auch diverse Messtechnik-Zusätze aus dem Feldbusbereich. Nur die kosten richtig Geld.

        Leider fällt mir nicht mehr ein, wie der Hersteller von diversen PC-Karten hieß, von dem ich früher immer welche gekauft habe. Die waren immer sehr gut und bezahlbar...

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
    2. Moin Moin!

      Die Taktfrequenz dieses auch als "Ticker" bekannten Interrupts ist 1sec/18.2 also 18.2x pro Sekunde.

      Unter DOS. Linux taktet wahlweise mit 100 Hz, 250 Hz, 300 Hz, 1 kHz, oder auch gar nicht (bzw. nur bei Bedarf).

      Sinnvolle Messungen sind mit dem HPET möglich, der unabhängig vom CPU-Takt läuft.

      Die große Frage bleibt: Was soll gemessen werden? Kurze Zeiträume im Bereich bis zu ein paar Sekunden, dann wäre der HPET quasi unverzichtbar. Oder lange Zeiträume, Minuten bis Tage; dann tut's auch ziemlich schmerzfrei jeder andere, im PC verfügbare Timer.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
      1. Hallo Tom, Hallo Alexander,

        auch euch vielen Dank für eure Antworten,

        Die große Frage bleibt: Was soll gemessen werden? Kurze Zeiträume im Bereich bis zu ein paar Sekunden, dann wäre der HPET quasi unverzichtbar. Oder lange Zeiträume, Minuten bis Tage; dann tut's auch ziemlich schmerzfrei jeder andere, im PC verfügbare Timer.

        im Eingangspost hatte ich den Zeitbereich eigentlich klar benannt, es geht um Mikrosekunden; längere Zeiträume zu vermessen sollte eigentlich klar sein (also selbst z.B. im ms-Bereich)

        bye trunx

        --
        Die Standard-Antwort: "Bitte benutze die Forum-Suche!" macht die Forum-Suche kaputt, weil die Suche dann nämlich genau vor allem diese dämliche Standard-Antwort, also Müll liefert. Sinnvoller ist stattdessen folgende Standard-Antwort: "Dieses Thema wurde schon vielfach im Forum besprochen, siehe z.B. <a>hier</a> oder <a>da</a> oder benutze die Forum-Suche z.B. mit den Stichworten 'Stichwort1 Stichwort2'." Danke.
        1. Moin Moin!

          im Eingangspost hatte ich den Zeitbereich eigentlich klar benannt, es geht um Mikrosekunden;

          Stimmt auffallend ;-)

          ISA-Karten kannst Du da mal ganz entspannt knicken, die sind zu lahm. Bei 8 MHz Bustakt hast Du bestenfalls eine Meßauflösung von 0,125 Mikrosekunden, eher weniger.

          USB-Gerümpel dürfte wegen des Pollings (in Hardware) auch zu lange Laufzeiten haben, die die Messung stören. Und von "normalen" Betriebssystemen solltest Du dich vielleicht auch verabschieden, weil dir die bei Mikrosekunden doch im Weg stehen.

          Wahrscheinlich solltest Du die Messung selbst in Hardware erledigen. Die kann dann über irgendetwas träges, langsames mit dem PC verbunden sein (USB, RS232) um dort die Meßdaten anzuzeigen und auszuwerten.

          Wenn Du selbst bauen willst, z.B. mit einem hoch getakteten Microcontroller (PIC oder AVR), der einen Hardware-Zähler auf Kommando startet und stoppt und den Zählerstand in Software per RS232 zum PC schreibt. Die Genauigkeit hängt dabei am Taktgenerator, mit dem integrierten R/C-Generator wirst Du keine Freude haben, ein normaler Quarz könnte schon gut genug sein, notfalls nimmst Du einen temperaturgeregelten Quarz-Oszillator.

          Wenn Du es genauer haben willst, brauchst Du vermutlich professionelle Meßtechnik, z.B. so etwas. Gleiches Prinzip, bessere Technik: Zeit zählen in Hardware, Übermittlung per RS232, USB, IEEE 488.

          Das Geld, dass Du in das Meßgerät investierst, sparst Du bei der Anschaffung des PCs. Denn 9600 8N1 schafft auch der Ur-PC ganz ohne Anstrengung. ;-)

          Alexander

          --
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        2. Hello,

          im Eingangspost hatte ich den Zeitbereich eigentlich klar benannt, es geht um Mikrosekunden;

          Ja, sitmmt.

          Aber mit handelsüblichen PCs macht selbst das Messen von Millisekunden schon schwierigkeiten, (auch) wenn Start- und Stopbefehle für den Zähler vom PC gesendet werden müssen.

          Da hilft nur ein programmierbarer Zähler mit genauer Zeitbasis, dem der PC sagen kann: beginne Zum Zeitpunkt T1 zu messen. Das Stop-Ereignis kommt ja wohl sowieso vom Messgut bzw. einem Sensor.

          Das darf keinesfalls über den PC laufen...

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de