<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zeitmessen im Millisekundenbereich]]></title><description><![CDATA[<p>Moin Moin!<br />
Mein Problem:<br />
Per USB-Board werden Impulse durch einen Timer (Interval:1) abgefragt.<br />
Bei einem bestimmten Impuls soll quasi eine Stoppuhr gestarten werden.<br />
Bei einem weiteren Impuls soll diese wieder gestoppt und die gemessene Zeitdifferenz ausgegeben werden.<br />
TTimer hab ich soweit schon rausgefunden ist da ja eine ziemlich ungenaue Komponente...<br />
Kann mir da evt. jemand weiterhelfen?<br />
Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169402/zeitmessen-im-millisekundenbereich</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 20:01:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169402.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jan 2007 22:22:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Thu, 04 Jan 2007 22:24:29 GMT]]></title><description><![CDATA[<p>Moin Moin!<br />
Mein Problem:<br />
Per USB-Board werden Impulse durch einen Timer (Interval:1) abgefragt.<br />
Bei einem bestimmten Impuls soll quasi eine Stoppuhr gestarten werden.<br />
Bei einem weiteren Impuls soll diese wieder gestoppt und die gemessene Zeitdifferenz ausgegeben werden.<br />
TTimer hab ich soweit schon rausgefunden ist da ja eine ziemlich ungenaue Komponente...<br />
Kann mir da evt. jemand weiterhelfen?<br />
Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203150</guid><dc:creator><![CDATA[fischdeba]]></dc:creator><pubDate>Thu, 04 Jan 2007 22:24:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Thu, 04 Jan 2007 22:26:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wieso ist TTimer eine ungenaue Komponente?</p>
<p>Was sind das für Impulse durch die die Stoppuhr gestartet/gestoppt werden soll? Button-Clicks? oder was?</p>
<p>Gruß<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203153</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Thu, 04 Jan 2007 22:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Thu, 04 Jan 2007 22:45:25 GMT]]></title><description><![CDATA[<p>Wie genau musst du das denn haben???</p>
<p>Wenn du die impule jede ms abragst, dann kann deine zeit auch nicht viel genauer sein.</p>
<p>Oder sollte die Frage darauf hin deuten wie du die Zeit startest und wieder stoppst??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203164</guid><dc:creator><![CDATA[JBOpael]]></dc:creator><pubDate>Thu, 04 Jan 2007 22:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Thu, 04 Jan 2007 23:28:16 GMT]]></title><description><![CDATA[<p>Du wirst vermtulich nicht umhin kommen dies über einen Hochperformance-Counter wie zum Beispiel den TSC des Prozessors zu verwenden (QueryPerformanceCounter/QueryPerformanceFrequency) Allerdings sei dazu gesagt, dass dies ein heisses Eisen ist seit es CPUs mit variabler Taktfrequenz und mehreren Cores gibt. (siehe auch: <a href="http://www.heise.de/newsticker/meldung/65802" rel="nofollow">http://www.heise.de/newsticker/meldung/65802</a> )</p>
<p>Möglich wäre auch etwas über eine TimerQueue zu lösen. Das ist aber tiefstes WinAPI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203186</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Thu, 04 Jan 2007 23:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Mon, 08 Jan 2007 13:24:59 GMT]]></title><description><![CDATA[<p>jaa, erstmal danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Ich hab da eine Hardware... USB-Experiment Interface Board nennt sich das Teil... Das Board krieg ich auch in C++ eingebunden und kann damit halt rumspielen... Da in dem Beispiel-Projekt vom Hersteller auch nur ein Timer benutzt wird um die Eingänge abzufragen, dacht ich mir übernehm ich das doch einfach mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
So nun soll halt durch diesen Eingang, der halt durch einen Timer abgefragt wird, eine weitere Uhr gestartet werden und diese Uhr soll im Millisekundenbereich läufen... wenn man, so wie ichs jetzt versucht hab, mit einem TTimer eine Variable hochzählt, dann stellt man schnell fest, dass höchstens Zehntelsekunden einigermaßen hinkommen, wobei das auch noch nicht genaue Sekunden sind...<br />
Nun hoffe ich, dass ich mein Problem verdeutlicht hab?<br />
vielen dank nochmal....</p>
<p>Mit diesen Highperformence dingern kenn ich mich nicht aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> scheiße....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205632</guid><dc:creator><![CDATA[fischdeba]]></dc:creator><pubDate>Mon, 08 Jan 2007 13:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Mon, 08 Jan 2007 13:30:04 GMT]]></title><description><![CDATA[<p>fischdeba schrieb:</p>
<blockquote>
<p>Mit diesen Highperformence dingern kenn ich mich nicht aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> scheiße....</p>
</blockquote>
<p>Willkommen in der Welt der Entwickler....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205633</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Mon, 08 Jan 2007 13:30:04 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Mon, 08 Jan 2007 20:26:04 GMT]]></title><description><![CDATA[<p>so im voraus, sind die schwer zu handhaben? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206013</guid><dc:creator><![CDATA[fischdeba]]></dc:creator><pubDate>Mon, 08 Jan 2007 20:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Tue, 09 Jan 2007 04:14:41 GMT]]></title><description><![CDATA[<p>nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206122</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 09 Jan 2007 04:14:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Tue, 09 Jan 2007 10:34:40 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12857">@fischdeba</a></p>
<p><a href="http://fatman98.fa.funpic.de/builder_zeit.php" rel="nofollow">http://fatman98.fa.funpic.de/builder_zeit.php</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206242</guid><dc:creator><![CDATA[F98]]></dc:creator><pubDate>Tue, 09 Jan 2007 10:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Tue, 09 Jan 2007 20:36:13 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1269">@F98</a>:<br />
ahhh perfekt, vielen dank, beim quelltext lesen kann man ne menge lernen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Guuut, also soweit hab ichs geschnallt, diverenz zwischen ende und anfang... wie kommt der denn auf negative werte, wenn man z.b. 5 sekunden wartet??</p>
<p>Vielleicht ist das ja mal einfacher mit Quelltext <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ //Timer-&gt;Interval = 1;
  //Stoppuhr
 LARGE_INTEGER Frequency, TimerStart, TimerStop;
 __int64 Latency;
 double Usedtime;
 int Digits = 3; // 3 Nachkommastellen

 if(ReadDigitalChannel(1))//Starten durch USB-Board Impuls Kanal 1
  {

    // erst die Latzenzzeit des Counters berechnen:
    QueryPerformanceFrequency(&amp;Frequency);
    QueryPerformanceCounter(&amp;TimerStart);
    QueryPerformanceCounter(&amp;TimerStop);
    Latency = TimerStop.QuadPart - TimerStart.QuadPart;

    QueryPerformanceCounter(&amp;TimerStart);

// Code für den die Zeit gemessen werden soll

  }
 if(ReadDigitalChannel(2))//Stoppen durch USB-Board Impuls Kanal 2
   {
    QueryPerformanceCounter(&amp;TimerStop);

    Usedtime = (((double)TimerStop.QuadPart - (double)TimerStart.QuadPart) - (double)Latency) / (double)Frequency.QuadPart;
    Edit2-&gt;Text = FloatToStrF(Usedtime, ffFixed, 16, Digits) + &quot; s&quot;;
   }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1206570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206570</guid><dc:creator><![CDATA[fischdeba]]></dc:creator><pubDate>Tue, 09 Jan 2007 20:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Wed, 10 Jan 2007 16:00:46 GMT]]></title><description><![CDATA[<p>Was für eine CPU? bzw. bleibt die Counterfrequenz gleich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207222</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Wed, 10 Jan 2007 16:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Wed, 10 Jan 2007 16:11:54 GMT]]></title><description><![CDATA[<p>Hm, abgesehen von einer Klammerung um die Subtraktion sieht das eigentlich ok aus und sollte funktionieren.<br />
Verschieb das doch bitte mal in eine Button-Click Methode und führ das manuell aus - nur um auszuschließen, dass der Timer da irgendwie reinpfuscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207234</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 10 Jan 2007 16:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Wed, 10 Jan 2007 19:15:43 GMT]]></title><description><![CDATA[<p>Button-Click-Methode macht auch nur Müll! irgendwie hab ich das gefühl, dass wenn man diese Query Teile auseinander reißt, dann kann man damit nicht arbeiten...</p>
<p>Prozessor : P4 3.0 GHz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207402</guid><dc:creator><![CDATA[fischdeba]]></dc:creator><pubDate>Wed, 10 Jan 2007 19:15:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessen im Millisekundenbereich on Thu, 11 Jan 2007 19:33:09 GMT]]></title><description><![CDATA[<p>lass mal das ganze double gecaste weg.<br />
Sprich:</p>
<pre><code class="language-cpp">Usedtime = (double)((TimerStop.QuadPart - TimerStart.QuadPart) - Latency) / Frequency.QuadPart)
</code></pre>
<p>Und schau dir mal im Debugger die Werte an welche in den QuadParts stehen und rechne mal von Hand nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208217</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Thu, 11 Jan 2007 19:33:09 GMT</pubDate></item></channel></rss>