<?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[Synchronschleifen- oder Timer]]></title><description><![CDATA[<p>Hi zusammen,<br />
ich brauche eine Schleife oder eine Timerfunktion, die synchron (d.h. mit gleichen zeitabständen) möglichst schnell (bis zu 250.000 mal pro sekunde) ausgeführt wird. Hört sich vielleicht komisch an, aber es muss funktionieren. die normalen while-schleifen laufen ja nicht so rund...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175298/synchronschleifen-oder-timer</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 11:00:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175298.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Mar 2007 21:12:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 21:12:29 GMT]]></title><description><![CDATA[<p>Hi zusammen,<br />
ich brauche eine Schleife oder eine Timerfunktion, die synchron (d.h. mit gleichen zeitabständen) möglichst schnell (bis zu 250.000 mal pro sekunde) ausgeführt wird. Hört sich vielleicht komisch an, aber es muss funktionieren. die normalen while-schleifen laufen ja nicht so rund...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241974</guid><dc:creator><![CDATA[name.-.]]></dc:creator><pubDate>Thu, 08 Mar 2007 21:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 21:16:05 GMT]]></title><description><![CDATA[<p>auf'm pc?<br />
musste wohl das OS lahmlegen <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 />
für was brauchste das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241976</guid><dc:creator><![CDATA[ten]]></dc:creator><pubDate>Thu, 08 Mar 2007 21:16:05 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 21:16:22 GMT]]></title><description><![CDATA[<p>Du solltest deine Frage etwas genauer formulieren und auch gleich noch sagen was für ein System du benutzt. Mit reinem ANSI C sehe ich da nämlich eher düster.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241977</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 08 Mar 2007 21:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 21:30:04 GMT]]></title><description><![CDATA[<p>t'schuldigung...<br />
es geht um analoge steuerungstechnik mit mess- und steuersignalen. ich arbeite unter windows xp. es geht erstmal nicht darum, wie ich das ganze hardwaretechnisch umsetze, und was ich in die funktion einbaue.<br />
primär brauche ich eine funktion, die um die 250.000 mal pro sekunde aufgerufen wird. dort kann auch erstmal nur</p>
<pre><code class="language-cpp">return 0;
</code></pre>
<p>stehen.<br />
wenn es nicht so schnell geht, dann ebend langsamer, aber bitte so synchron, also gleichmäßig wie möglich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241988</guid><dc:creator><![CDATA[name.-.]]></dc:creator><pubDate>Thu, 08 Mar 2007 21:30:04 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 22:06:33 GMT]]></title><description><![CDATA[<p>kommt drauf an wie genau du's brauchst.<br />
mit ein paar tricks wie hochsetzen der threadpriorität auf maximum und der winapi-funktion 'timeBeginPeriod' (damit kann man die 'granularität' der scheduler-ticks verstellen), kannste in grenzen was ausrichten.<br />
wenn das nicht reicht, dann musste das im kernel mode machen, alle interrupts und den taskswitcher temporär disablen usw.<br />
oder du nimmst 'ne realtime extension software für windoofs (ich kenn' da aber leider nix was free ist)<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241998</guid><dc:creator><![CDATA[ten]]></dc:creator><pubDate>Thu, 08 Mar 2007 22:06:33 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 23:27:07 GMT]]></title><description><![CDATA[<p>Ich schieb das man nach rudpf. Ich denke da ist der Thread fast besser aufgehoben als in WinAPI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242022</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 08 Mar 2007 23:27:07 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Thu, 08 Mar 2007 23:27:19 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-14811.html" rel="nofollow">TactX</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-10.html" rel="nofollow">ANSI C</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-8.html" rel="nofollow">Rund um die Programmierung</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242023</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 08 Mar 2007 23:27:19 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Fri, 09 Mar 2007 02:44:20 GMT]]></title><description><![CDATA[<p>Mal vorweg: Du benutzt das wort Synchron hier vollkommen falsch. <a href="http://de.wikipedia.org/wiki/Synchronit%C3%A4t" rel="nofollow">http://de.wikipedia.org/wiki/Synchronität</a><br />
Synchron bedeutet <strong>Gleichzeitig</strong>, was Du willst ist <strong>Gleichmässig</strong>.</p>
<p>Zum eigendlichen Problem: Das was du da machen willst geht mit Windows XP schlicht nicht, weil windowsXp kein Echtzeitbetriebssystem ist:<br />
<a href="http://de.wikipedia.org/wiki/Echtzeitbetriebssystem" rel="nofollow">http://de.wikipedia.org/wiki/Echtzeitbetriebssystem</a>.</p>
<p>Selbst wenn Du einen entsprechenden Timer laufen hast wird der Aufruf der Timerfunktion immer schwanken weil Du keinen einfluß darauf hast was der computer gerade noch ales macht (-&gt;preemtives Multitasking).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242051</guid><dc:creator><![CDATA[sioa]]></dc:creator><pubDate>Fri, 09 Mar 2007 02:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Fri, 09 Mar 2007 06:59:04 GMT]]></title><description><![CDATA[<p>Grundsätzlich ist so eine Applikation auch mit Windows oder Linux möglich, sofern man im notwendigen Zeittakt nicht zu weit runter geht... und 250000mal pro Sekunde ist definitiv zu weit. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Dafür braucht man eigene Echtzeitkernel-Erweiterungen, Kithara zum Beispiel ist eine:</p>
<p><a href="http://www.kithara.de/" rel="nofollow">http://www.kithara.de/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242073</guid><dc:creator><![CDATA[Marc++us]]></dc:creator><pubDate>Fri, 09 Mar 2007 06:59:04 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Fri, 09 Mar 2007 13:14:18 GMT]]></title><description><![CDATA[<p>Windows und Linux sind beides keine Echtzeitsysteme, die 250.000 mal/Sekunde kannste also ganz schnell vergessen. Ganz davon abgesehen dass 250.000 mal/Sekunde nichtmal auf einem Echtzeitbetriebssystem (RTOS) einfach hinzubekommen ist, nicht mit PC Hardware.</p>
<p>Auf 10.000/Sekunde kommste mit nem guten RTOS, mit Windows würde ich mich nicht trauen mehr als ~~500/Sekunde zu machen, wobei du da schon mit einem Jitter von 1-2ms rechnen musst. UND du brauchst dafür schon einen hardware Interrupt der alle 2ms triggert.</p>
<p>Auf guat deitsch: vergiss es <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/1242284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242284</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 09 Mar 2007 13:14:18 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Fri, 09 Mar 2007 13:24:02 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Ganz davon abgesehen dass 250.000 mal/Sekunde nichtmal auf einem Echtzeitbetriebssystem (RTOS) einfach hinzubekommen ist, nicht mit PC Hardware.</p>
</blockquote>
<p>1/4 Mhz ist doch lächerlich langsam.<br />
weisst du mit welchen taktraten ein aktueller PC arbeitet?<br />
der schläft ein dabei...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242292</guid><dc:creator><![CDATA[ten]]></dc:creator><pubDate>Fri, 09 Mar 2007 13:24:02 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Sat, 10 Mar 2007 19:30:07 GMT]]></title><description><![CDATA[<p>Nimm doch ein einfaches echtzeitfähiges System (irgendsoein Starter-kit, wir haben es mit Infineon C167 gemacht), das du dann unter deinem WinXP programmieren kannst :). Oder gleich gscheit (du willst doch bestimmt was regeln?) ein FPGA, da ist man ja die ganze Zeit in dem Timer-Callback drin :).</p>
<p>Auf PC mit Windows wirst du den 4µs-Taktschläger nicht hinbekommen, ohne Betriebssystem schon. Aber es ist nicht gerade bequem zu programmieren und vor allem das Debuggen stelle ich mir wenig spaßig vor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243066</guid><dc:creator><![CDATA[Superlexx]]></dc:creator><pubDate>Sat, 10 Mar 2007 19:30:07 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Sat, 10 Mar 2007 20:04:13 GMT]]></title><description><![CDATA[<p>Superlexx schrieb:</p>
<blockquote>
<p>Aber es ist nicht gerade bequem zu programmieren und vor allem das Debuggen stelle ich mir wenig spaßig vor.</p>
</blockquote>
<p>ich glaub die pentiums hatten 'ne JTAG schnittstelle eingebaut. ob die heutigen dinger das noch haben, weiss ich aber nicht...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243083</guid><dc:creator><![CDATA[ten]]></dc:creator><pubDate>Sat, 10 Mar 2007 20:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Sat, 10 Mar 2007 21:39:35 GMT]]></title><description><![CDATA[<p>ten schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Ganz davon abgesehen dass 250.000 mal/Sekunde nichtmal auf einem Echtzeitbetriebssystem (RTOS) einfach hinzubekommen ist, nicht mit PC Hardware.</p>
</blockquote>
<p>1/4 Mhz ist doch lächerlich langsam.<br />
weisst du mit welchen taktraten ein aktueller PC arbeitet?<br />
der schläft ein dabei...</p>
</blockquote>
<p>Aha. Wennst glaubst...<br />
Dass PC Hardware an sich nicht realtime fähig ist hat nichts mit der Taktung der CPU zu tun, sondern eher damit dass die Abarbeitung irgendwelcher Programme jederzeit durch blöde Interrupts unterbrochen werden kann, Interrupts wie den SMI, den du nicht maskieren kannst.<br />
Der wird übrigens gerne hergekommen um Chipset Fehler zu verbergen -- und wenn das Chipset eben glaubt genau *jetzt* einen SMI triggern zu müssen, dann ist das eben so. Kannste nix dagegen machen.<br />
Und da sind IMHO 250.000Hz schon SEHR viel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243124</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 10 Mar 2007 21:39:35 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Sat, 10 Mar 2007 22:02:26 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass PC Hardware an sich nicht realtime fähig ist hat nichts mit der Taktung der CPU zu tun, sondern eher damit dass die Abarbeitung irgendwelcher Programme jederzeit durch blöde Interrupts unterbrochen werden kann, Interrupts wie den SMI, den du nicht maskieren kannst.<br />
Der wird übrigens gerne hergekommen um Chipset Fehler zu verbergen -- und wenn das Chipset eben glaubt genau *jetzt* einen SMI triggern zu müssen, dann ist das eben so. Kannste nix dagegen machen.<br />
Und da sind IMHO 250.000Hz schon SEHR viel.</p>
</blockquote>
<p>naja, wenn unkontrollierte interrupts reinknallen, dann ist PC-hardware grundsätzlich nicht echtzeitfähig.<br />
aber zur not mach' einfach den pin ab und leg' den auf masse oder, ohne lötkolben, die ISR nur zu einer einzigen 'return from interrupt' instruction <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 />
dann ist es nicht mehr ganz so schlimm.</p>
<p>btw: ich hab' mal mit 'nem mit 40Mhz getakteten chip mangels hardware-SPI über bit-banging daten eingelesen, die mit 'ner 1Mhz clock ankamen. da musste man schon taktzyklen zählen und die richtige bufferarchitektur wählen damit das klappt (speichern der daten auf 'ne cf-karte musste aber eine andere CPU machen, dafür hätt's dann doch nicht mehr gereicht). ging aber, obwohl ich anfangs auch am zweifeln war...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243132</guid><dc:creator><![CDATA[ten]]></dc:creator><pubDate>Sat, 10 Mar 2007 22:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to Synchronschleifen- oder Timer on Mon, 12 Mar 2007 01:20:19 GMT]]></title><description><![CDATA[<p>ten schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass PC Hardware an sich nicht realtime fähig ist hat nichts mit der Taktung der CPU zu tun, sondern eher damit dass die Abarbeitung irgendwelcher Programme jederzeit durch blöde Interrupts unterbrochen werden kann, Interrupts wie den SMI, den du nicht maskieren kannst.<br />
Der wird übrigens gerne hergekommen um Chipset Fehler zu verbergen -- und wenn das Chipset eben glaubt genau *jetzt* einen SMI triggern zu müssen, dann ist das eben so. Kannste nix dagegen machen.<br />
Und da sind IMHO 250.000Hz schon SEHR viel.</p>
</blockquote>
<p>naja, wenn unkontrollierte interrupts reinknallen, dann ist PC-hardware grundsätzlich nicht echtzeitfähig.<br />
aber zur not mach' einfach den pin ab und leg' den auf masse oder, ohne lötkolben, die ISR nur zu einer einzigen 'return from interrupt' instruction <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 />
dann ist es nicht mehr ganz so schlimm.</p>
<p>btw: ich hab' mal mit 'nem mit 40Mhz getakteten chip mangels hardware-SPI über bit-banging daten eingelesen, die mit 'ner 1Mhz clock ankamen. da musste man schon taktzyklen zählen und die richtige bufferarchitektur wählen damit das klappt (speichern der daten auf 'ne cf-karte musste aber eine andere CPU machen, dafür hätt's dann doch nicht mehr gereicht). ging aber, obwohl ich anfangs auch am zweifeln war...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Mit <strong>selektierter</strong> PC Hardware geht sicher einiges. Ich meine bloss man kann sich nicht einfach ein Board irgendwo ausm Regal greifen, und dann erwarten damit auf 250.000Hz ohne Dropouts zu kommen. Wenn man das Board natürlich speziell auswählt, u.U. das BIOS oder das Board selbst modifiziert, dann geht sicher mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243717</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 12 Mar 2007 01:20:19 GMT</pubDate></item></channel></rss>