<?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[Reaktionszeit zu lange]]></title><description><![CDATA[<p>Hallo auch,</p>
<p>Folgender Versuchsaufbau:</p>
<p>Ich habe einen PC über eine RS232-Verbindung mit einem µC verbunden. Die Kommunikation läuft im Prinzip so ab: Der PC sendet ein einzelnes Byte vom PC zum µC. Der µC quittiert das Byte mit ebenfalls einem Byte. Der PC wartet solange bis das Quittungsbyte eingelesen ist und sendet das nächste Byte. Es werden also abwechselnd einzelne Bytes zwischen PC und µC versendet.</p>
<p>Das Problem:</p>
<p>Wenn der µC das Byte erhält wird unmittelbar das Quittungsbyte versendet, hier ist das Timing optimal (&lt;100µs). Anders beim PC: Bis der PC das Byte eingelesen hat, und das nächste Byte zu senden beginnt vergeht eine Zeit von 4,23msec.</p>
<p>Die Fragen:</p>
<p>A: Warum dauert die Reaktion auf dem PC so lange?<br />
B: Wie kann ich diese Wartezeit minimieren?</p>
<p>Die exakten Reaktionszeiten habe ich mit Hilfe eines Oszilloskopes bestimmt. Die Baudrate ist 9600 Baud. Programmiert habe ich das ganze mit Visual C++ 2003 mit Hilfe der MFCs. Die Serielle Schnittstelle spreche ich mit Hilfe der Klasse CSerialPort an. Ich vermute die Wartezeit entsteht beim Empfang der Quitierung, nicht beim senden des Bytes. Ich habe schon versucht das Timing mit Hilfe der struct COMMTIMEOUTS zu optimieren, jedoch ohne Resultat (war eigentlich zu erwarten, da ich nur ein Zeichen sende bzw. Empfange).</p>
<p>Weis jemand Rat?</p>
<p>Dank &amp; Gruß<br />
beis</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164623/reaktionszeit-zu-lange</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 00:52:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164623.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Nov 2006 13:51:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Reaktionszeit zu lange on Mon, 13 Nov 2006 07:22:26 GMT]]></title><description><![CDATA[<p>Hallo auch,</p>
<p>Folgender Versuchsaufbau:</p>
<p>Ich habe einen PC über eine RS232-Verbindung mit einem µC verbunden. Die Kommunikation läuft im Prinzip so ab: Der PC sendet ein einzelnes Byte vom PC zum µC. Der µC quittiert das Byte mit ebenfalls einem Byte. Der PC wartet solange bis das Quittungsbyte eingelesen ist und sendet das nächste Byte. Es werden also abwechselnd einzelne Bytes zwischen PC und µC versendet.</p>
<p>Das Problem:</p>
<p>Wenn der µC das Byte erhält wird unmittelbar das Quittungsbyte versendet, hier ist das Timing optimal (&lt;100µs). Anders beim PC: Bis der PC das Byte eingelesen hat, und das nächste Byte zu senden beginnt vergeht eine Zeit von 4,23msec.</p>
<p>Die Fragen:</p>
<p>A: Warum dauert die Reaktion auf dem PC so lange?<br />
B: Wie kann ich diese Wartezeit minimieren?</p>
<p>Die exakten Reaktionszeiten habe ich mit Hilfe eines Oszilloskopes bestimmt. Die Baudrate ist 9600 Baud. Programmiert habe ich das ganze mit Visual C++ 2003 mit Hilfe der MFCs. Die Serielle Schnittstelle spreche ich mit Hilfe der Klasse CSerialPort an. Ich vermute die Wartezeit entsteht beim Empfang der Quitierung, nicht beim senden des Bytes. Ich habe schon versucht das Timing mit Hilfe der struct COMMTIMEOUTS zu optimieren, jedoch ohne Resultat (war eigentlich zu erwarten, da ich nur ein Zeichen sende bzw. Empfange).</p>
<p>Weis jemand Rat?</p>
<p>Dank &amp; Gruß<br />
beis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172227</guid><dc:creator><![CDATA[beis]]></dc:creator><pubDate>Mon, 13 Nov 2006 07:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to Reaktionszeit zu lange on Sat, 11 Nov 2006 21:48:42 GMT]]></title><description><![CDATA[<p>Könnte an der Empfangs-FIFO liegen. Dreh mal die Schwelle für die Empfangs-FIFO runter, oder schalt die FIFOs ganz ab. (Geht beides übern Device-Manager, genauer: über die &quot;Eigenschaften&quot; Dialoge des Devices).</p>
<blockquote>
<p>Ich vermute die Wartezeit entsteht beim Empfang der Quotierung, nicht beim senden des Bytes</p>
</blockquote>
<p>Das vermute ich auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172769</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 11 Nov 2006 21:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to Reaktionszeit zu lange on Sun, 12 Nov 2006 07:32:14 GMT]]></title><description><![CDATA[<p>Windows ist kein Echtzeit OS. Somit ist das gezeigte verhalten ganz normal.<br />
Wie &quot;beis&quot; gesagt hat, kannst Du es aber optimieren, indem Du die FIFO-Einstellungen für den Port änderst. Du musst in &quot;Erweiterte Einstellungen für COMx&quot; den Empfangspuffer auf &quot;Niedrig (1)&quot; Stellen. Der Text ist leider sehr verwirrend, da es nichts mit der Puffergröße zu tun hat, sondern nur der Wert ist, ab dem ein Interrupt ausgelöst wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172846</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 12 Nov 2006 07:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to Reaktionszeit zu lange on Mon, 13 Nov 2006 07:25:25 GMT]]></title><description><![CDATA[<p>Änderung der Puffergröße oder Abschalten des Puffers bringt leider nichts.</p>
<p>Dass Windows kein Echtzeitbetriebssystem ist weis ich, mich wundert nur, dass die Wartezeit zwischen den Zeichen so genau 4,23msec ist. Wie wenn irgendetwas ablaufen würde, das diese Zeit verursacht.</p>
<p>Grüße<br />
beis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1173365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1173365</guid><dc:creator><![CDATA[beis]]></dc:creator><pubDate>Mon, 13 Nov 2006 07:25:25 GMT</pubDate></item><item><title><![CDATA[Reply to Reaktionszeit zu lange on Mon, 13 Nov 2006 08:25:23 GMT]]></title><description><![CDATA[<p>Bei mir hat die Änderung auf 1 nach einem Neustart die Reaktionszeit auf ca. 1 ms rediziert (Thread lief aber mit höherer Priorität!). Die Priorität Deines Warte-Threads muss aber höher sein als normal. Sonst hast Du immer den &quot;Time-Slice&quot; Effekt von anderen Threads.<br />
Wie genau wartest Du denn auf Zeichen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1173393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1173393</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 13 Nov 2006 08:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to Reaktionszeit zu lange on Mon, 13 Nov 2006 09:05:03 GMT]]></title><description><![CDATA[<p>Das war der Trick:</p>
<p>Der FIFO-Puffer ist zu deaktivieren. Das habe ich schon versucht gehabt, jedoch habe ich vergessen danach den Rechner neu zu starten. Nach einem Neustart funktionierte es tadellos.</p>
<p>Übrigens war es bei mir nicht notwendig die Priorität des Tasks zu erhöhen.</p>
<p>Vielen Dank für Eure Hilfe.</p>
<p>Grüße<br />
beis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1173425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1173425</guid><dc:creator><![CDATA[beis]]></dc:creator><pubDate>Mon, 13 Nov 2006 09:05:03 GMT</pubDate></item><item><title><![CDATA[Reply to Reaktionszeit zu lange on Mon, 13 Nov 2006 09:50:55 GMT]]></title><description><![CDATA[<p>beis schrieb:</p>
<blockquote>
<p>Übrigens war es bei mir nicht notwendig die Priorität des Tasks zu erhöhen.</p>
</blockquote>
<p>Die Priorität musst Du nur dann nicht erhöhen, wenn sonst +nichts* auf dem Rechner (ständig) läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1173449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1173449</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 13 Nov 2006 09:50:55 GMT</pubDate></item></channel></rss>