<?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[Serielle Schnittstelle schnell(!!!) zum Senden bewegen.]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte einem Gerät das über die serielle Schnittstelle angebunden ist, in sehr kurzen Zeitintervallen (100ms) ein Zeichen senden.<br />
Das Senden an sich ist kein Problem.<br />
Durch ein Hardwaretimer kann ich auch die Intervalle genau einhalten. Wenn ich dann jedesmal Windows bitte das Zeichen zu senden, dann tuts das auch.<br />
Problem ist: nicht sofort.<br />
Mit einem kleinen Gerät was ich zwischen dem PC und dem Empfänger klemme kann ich überwachen wann das Zeichen tatsächlich über die Leitung geht.<br />
Und das passt leider nie mit meinen Intervallen überein. D.h. mal liegt ne Sekunde zwischen zwei Zeichen, mal 100 ms.<br />
Ich brauchs aber genau.<br />
Kennt einer vielleicht eine Möglichkeit Windows davon abzuhalten zwischen durch noch was anderes zu machen?<br />
Oder gibts eine Bibliothek die sowas umsetzt.<br />
Ich vermute mal an Windows vorbeikommen kann ich wohl nicht.</p>
<p>Vielen Dank schonmal<br />
Janet</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/99206/serielle-schnittstelle-schnell-zum-senden-bewegen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:57:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/99206.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Jan 2005 13:30:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 13:30:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte einem Gerät das über die serielle Schnittstelle angebunden ist, in sehr kurzen Zeitintervallen (100ms) ein Zeichen senden.<br />
Das Senden an sich ist kein Problem.<br />
Durch ein Hardwaretimer kann ich auch die Intervalle genau einhalten. Wenn ich dann jedesmal Windows bitte das Zeichen zu senden, dann tuts das auch.<br />
Problem ist: nicht sofort.<br />
Mit einem kleinen Gerät was ich zwischen dem PC und dem Empfänger klemme kann ich überwachen wann das Zeichen tatsächlich über die Leitung geht.<br />
Und das passt leider nie mit meinen Intervallen überein. D.h. mal liegt ne Sekunde zwischen zwei Zeichen, mal 100 ms.<br />
Ich brauchs aber genau.<br />
Kennt einer vielleicht eine Möglichkeit Windows davon abzuhalten zwischen durch noch was anderes zu machen?<br />
Oder gibts eine Bibliothek die sowas umsetzt.<br />
Ich vermute mal an Windows vorbeikommen kann ich wohl nicht.</p>
<p>Vielen Dank schonmal<br />
Janet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/706549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/706549</guid><dc:creator><![CDATA[&amp;lt;janet&amp;gt;]]></dc:creator><pubDate>Wed, 26 Jan 2005 13:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 15:02:16 GMT]]></title><description><![CDATA[<p>Windows ist kein Echtzeitbetriebssystem; dafür bietet es dir eine recht hohe Abstraktionsebene der Hardware an.</p>
<p>Theoretisch könnte es die Zeichen auch mehrere Sekunden puffern und dann in einem Rutsch senden (vielleicht tut es das bei sogar).<br />
Du musst also IMHO entweder auf ein anderes (echtzeitfähiges) Betriebssystem umsteigen oder deinem Gerät die Fähigkeit geben, die Daten zu puffern. 100ms-Intervalle kannst du unter Windows AFAIK niemals genau einhalten (wenn dann nur mit größten Verrenkungen und zig Nachteilen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/706704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/706704</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Wed, 26 Jan 2005 15:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 15:57:50 GMT]]></title><description><![CDATA[<p>Nur so ne Idee, vielleicht kannst dus in Assembler ohne WinApi machen und damit das Betriebssystem umgehen. Als alternatives Betriebssystem fällt mir nur Linux ein. Eventuell könntest du dann mittels asm {} deinen Assembler Code nur zu senden in dein bestehendes Programm einbinden. (Weiß es aber nicht genau!!!!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/706787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/706787</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Jan 2005 15:57:50 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 16:10:31 GMT]]></title><description><![CDATA[<p>Man kann mit asm nicht das Betriebssystem umgehen! Dann wäre es ja ziemlich nutzlos.</p>
<p>Wie viel Verzögerung wäre denn vertretbar? Wenn du es wirklich so genau haben willst, wirst du wohl nicht um ein Echtzeitbetriebssystem herumkommen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/706806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/706806</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Wed, 26 Jan 2005 16:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 16:47:37 GMT]]></title><description><![CDATA[<p>Ändert sich was, wenn der FiFo-Puffer bei der seriellen Schnittstelle abgeschaltet wird ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/706846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/706846</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 26 Jan 2005 16:47:37 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 21:32:00 GMT]]></title><description><![CDATA[<p>@ Ringding:</p>
<p>Nur mal so OT warum sollte man das Betriebssystem mit asm nicht umgehen können?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707167</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Jan 2005 21:32:00 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 21:39:27 GMT]]></title><description><![CDATA[<p>Was wäre denn das für ein OS, wenn Benutzerprozesse erst recht wieder machen könnten, was sie wollen? Die einzige Möglichkeit, ein OS zu umgehen, ist, einen Kerneltreiber dafür zu schreiben und diesen zu laden. Und da muss keine einzige Zeile Assembler drin vorkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707177</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Wed, 26 Jan 2005 21:39:27 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 21:42:24 GMT]]></title><description><![CDATA[<p>In Asm kann ich doch ohne weiteres dem Prozessor befehle erteilen, daraus folgt das der HAL nahe 0 ist. Wenn ich jetzt dem Prozessor sage er soll ohne ende idlen dann tut der das auch. Auf Grafikkarten kann ich mir sogar ohne ASM exklusiven Zugriff holen. (DirectX ...) oder sehe ich da was falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707181</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Jan 2005 21:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 21:45:55 GMT]]></title><description><![CDATA[<p>Wenn du irgendwas tust, was die Funktionsweise des OS beeinträchtigen würde, dann wird von der CPU eine Exception ausgelöst und der böse Prozess vom OS getötet, so einfach ist das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707185</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Wed, 26 Jan 2005 21:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 21:59:02 GMT]]></title><description><![CDATA[<p>Auch mit einem Kerneltreiber kannst du keine Echtzeit hinbekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707201</guid><dc:creator><![CDATA[driver]]></dc:creator><pubDate>Wed, 26 Jan 2005 21:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 22:09:13 GMT]]></title><description><![CDATA[<p>Das habe ich auch nicht behauptet.</p>
<p>Allerdings würde ich schon meinen, dass man wahrscheinlich schnell genug sein kann, dass es auf der (nun nicht gerade rasanten) RS-232 nicht wirklich ins Gewicht fällt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707213</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Wed, 26 Jan 2005 22:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 22:19:44 GMT]]></title><description><![CDATA[<p>@Rinding ich könnte aber meinerseits einfach das OS vorher umbringen (vielleicht geht das bei WinXp nicht mehr aber zu Zeiten von Win95- 98 ging das sicher...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707224</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Jan 2005 22:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 26 Jan 2005 22:25:27 GMT]]></title><description><![CDATA[<p>&lt;janet&gt; schrieb:</p>
<blockquote>
<p>D.h. mal liegt ne Sekunde zwischen zwei Zeichen, mal 100 ms.<br />
Ich brauchs aber genau.</p>
</blockquote>
<p>wenn eine volle sekunde verzögerung zu messen ist dann läuft da grundlegend was faul. ansonsten...probiers mal damit: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/transmitcommchar.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/transmitcommchar.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/707229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707229</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 26 Jan 2005 22:25:27 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Thu, 27 Jan 2005 07:09:13 GMT]]></title><description><![CDATA[<p>Es gibt ein (etwas umständliches) Verfahren, mit der man Mikrosekunden-genaue Abläufe über die Serielle Schnittstelle unter Windows erzeugen kann. Zwei Einschränkungen gibt es aber:<br />
- Die Auflösung ist zwar sehr genau, aber nicht beliebig wählbar (nur in Stufen)<br />
- &quot;Echtzeit&quot; ist nicht gegeben, weil eine Reaktion des Users (oder Threads) nicht in einer festen, vorher bestimmbaren Zeit erfolgt.</p>
<p>Wenn der Buffer der Serielle Schnittstelle groß genug ist und man dafür sorgt, das er immer gefüllt ist, dann werden die einzelnen Zeichen im exakten Takt der Baudrate versendet. Man muß &quot;nur&quot; die Zeichen herausfischen (lassen) oder abzählen, die eben alle 100 ms erscheinen. Mit Hardware oder Software im Empfänger oder wie auch immer.</p>
<p>Blackbird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707346</guid><dc:creator><![CDATA[Blackbird]]></dc:creator><pubDate>Thu, 27 Jan 2005 07:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Thu, 27 Jan 2005 11:11:48 GMT]]></title><description><![CDATA[<p>Wow, erstmal vielen dank für die große anteilnahme.</p>
<p>geeky schrieb:</p>
<blockquote>
<p>Ändert sich was, wenn der FiFo-Puffer bei der seriellen Schnittstelle abgeschaltet wird ?</p>
</blockquote>
<p>Nein. Theoretisch müsste er jedes Zeichen sobalds an der Schnittstelle ankommt losschicken.<br />
Zwischen dem Treiber (CommDrv/lib - nutzt Winapi-treiber) und der Schnittstelle scheint wohl noch ein langer Weg durch OS zu liegen. Da hengt es.</p>
<p>net schrieb:</p>
<blockquote>
<p>wenn eine volle sekunde verzögerung zu messen ist dann läuft da grundlegend was faul. ansonsten...probiers mal damit: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/transmitcommchar.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/transmitcommchar.asp</a></p>
</blockquote>
<p>So was ähnliches schon probiert. Ändert nix.</p>
<p>Meine Zeitintervalle erhalte ich durch einen HW-Timer, der wiederum einen Interrupt ausslöst. Der Aufruf der Interrupt-callback-Funktion verlief bisher asynchron.<br />
Ich bin dabei das in Synchron zu ändern (dann läufts im Kontext des Interruptauslösers und ich sollte nicht mehr solche verzögerungen haben)<br />
Leider kann ich dann weder globale Variablen noch WinAPI Funktionen benutzten.<br />
Also begebe ich mich jetzt auf die Suche nach einer Möglichkeit dem CommDrv die WinApi abzugewöhnen, oder eben nach einer anderen Bibliothek.</p>
<p>Ich glaube fast nicht das ich damit viel zeit gewinne, denn letztenendes habt ihr recht und ich bräuchte ein Echtzeitbetriebsystem.</p>
<p>Wenn ich ein Ergebnis habe lass ich es euch wissen.<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707560</guid><dc:creator><![CDATA[&amp;lt;janet&amp;gt;]]></dc:creator><pubDate>Thu, 27 Jan 2005 11:11:48 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Thu, 27 Jan 2005 14:24:51 GMT]]></title><description><![CDATA[<p>Alles gar nicht so einfach.</p>
<p>Kennt jemand eine Bibliothek o.ä. mit der man auf eine serielle Schnittstelle ohne verwendung der Windows-Standarttreiber zugreifen kann?</p>
<p>Es gibt Comm-Drv/VxD, leider ist es mir nicht möglich davon eine Shareware oder ein Trial aufzuspüren. Das würde ja für den Anfang reichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707781</guid><dc:creator><![CDATA[&amp;lt;janet&amp;gt;]]></dc:creator><pubDate>Thu, 27 Jan 2005 14:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Thu, 27 Jan 2005 14:28:16 GMT]]></title><description><![CDATA[<p>wenn ich mich nicht irre ist im win-ddk der comport-treiber als sourcecode dabei. den könnteste manipulieren oder austauschen und so direkt auf den uart zugreifen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707787</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 27 Jan 2005 14:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Thu, 27 Jan 2005 14:28:54 GMT]]></title><description><![CDATA[<p>Ein VXD nützt dir auch nix, es sei denn, du hast W9x - voller Abscheu wende ich mein Gesicht ab...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/707789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/707789</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Thu, 27 Jan 2005 14:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Fri, 28 Jan 2005 12:35:01 GMT]]></title><description><![CDATA[<p>Ringding schrieb:</p>
<blockquote>
<p>Ein VXD nützt dir auch nix, es sei denn, du hast W9x - voller Abscheu wende ich mein Gesicht ab...</p>
</blockquote>
<p>stimmt.<br />
Aber gott sei dank gibt es noch commDrv/Nt -&gt; ist das gleiche wie VxD nur eben auch für Win2k.<br />
Da das erstmal gekauft sein will, kann ich noch nicht mehr zum lösen meines eigentlichen Problems sagen.<br />
Nächste Woche gibts dann mehr.</p>
<p>Vielen Dank nochmal an alle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/708704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/708704</guid><dc:creator><![CDATA[&amp;lt;janet&amp;gt;]]></dc:creator><pubDate>Fri, 28 Jan 2005 12:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle schnell(!!!) zum Senden bewegen. on Wed, 02 Feb 2005 13:48:40 GMT]]></title><description><![CDATA[<p>Also,</p>
<p>mit CommDrv/NT funktionierts.<br />
Man muss direkt die Treiber der Schnittstelle austauschen und schon kanns losgehen.<br />
Ich braucht nur die Initialisierung ändern, der Rest vom Code konnte gleichbleiben, da sich CommDrv/NT unter CommDrv/Lib schiebt.</p>
<p>Vielen Dank nochmal an alle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/712833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/712833</guid><dc:creator><![CDATA[&amp;lt;janet&amp;gt;]]></dc:creator><pubDate>Wed, 02 Feb 2005 13:48:40 GMT</pubDate></item></channel></rss>