<?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[while-Schleife unterbrechen]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe vor in einer while schleife alle 100ms oder so ein Signal an ein Microcontroller zu senden und anschließend von ihm über Serielle Schnittstelle ein<br />
Datenpacket(128B) zu empfangen.<br />
Die Zeitverzögerung brauche ich weil mein MC sonst nicht hinterherkommt.<br />
die Schleife geht normalerweise solange bis der MC ein ende zeichen im 1 Bytte sendet (z.b. Z oder besser 0xff).<br />
mein Problem ist, solange er in dieser while Schleife ist, ist natürlich das ganze Programm blockiert, aber bei bedarf muss ich diese Schleife manuell beenden können<br />
(wenn ich z.B. ein Button drücke). Gibt es eine möglichkeit z.B. über eine Art Interrupt die Schleife zu verlassen?<br />
oder habe ich eine andere möglichkeit diese funktion zu bewerksteliggen?<br />
die schleife sieht bis jetzt so aus:<br />
while(rec_buf_c[0] != 0xff) //Datensatz Downloaden und Speichern<br />
{<br />
//Daten Empfangen: // Wird bei mir direkt nach Write_Comport ausgeführt<br />
Read_Comport (com_status_h, // Fest - True falls Port geöffnet<br />
&amp;rec_bytes_dw, // Fest - Anzahl der Empfangenen Bytes<br />
128, // Variabel - Empfange maximal 128 Bytes char)<br />
&amp;rec_buf_c, // Variabel - Empfangspuffer (min. 19 Bytes<br />
3000); // Variabel - Timeout nach 3 sec.<br />
Memo-&gt;Lines-&gt;Add(rec_buf_c);</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/110415/while-schleife-unterbrechen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 16:58:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/110415.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 May 2005 12:11:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to while-Schleife unterbrechen on Fri, 20 May 2005 12:11:11 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe vor in einer while schleife alle 100ms oder so ein Signal an ein Microcontroller zu senden und anschließend von ihm über Serielle Schnittstelle ein<br />
Datenpacket(128B) zu empfangen.<br />
Die Zeitverzögerung brauche ich weil mein MC sonst nicht hinterherkommt.<br />
die Schleife geht normalerweise solange bis der MC ein ende zeichen im 1 Bytte sendet (z.b. Z oder besser 0xff).<br />
mein Problem ist, solange er in dieser while Schleife ist, ist natürlich das ganze Programm blockiert, aber bei bedarf muss ich diese Schleife manuell beenden können<br />
(wenn ich z.B. ein Button drücke). Gibt es eine möglichkeit z.B. über eine Art Interrupt die Schleife zu verlassen?<br />
oder habe ich eine andere möglichkeit diese funktion zu bewerksteliggen?<br />
die schleife sieht bis jetzt so aus:<br />
while(rec_buf_c[0] != 0xff) //Datensatz Downloaden und Speichern<br />
{<br />
//Daten Empfangen: // Wird bei mir direkt nach Write_Comport ausgeführt<br />
Read_Comport (com_status_h, // Fest - True falls Port geöffnet<br />
&amp;rec_bytes_dw, // Fest - Anzahl der Empfangenen Bytes<br />
128, // Variabel - Empfange maximal 128 Bytes char)<br />
&amp;rec_buf_c, // Variabel - Empfangspuffer (min. 19 Bytes<br />
3000); // Variabel - Timeout nach 3 sec.<br />
Memo-&gt;Lines-&gt;Add(rec_buf_c);</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/792324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/792324</guid><dc:creator><![CDATA[Scooby]]></dc:creator><pubDate>Fri, 20 May 2005 12:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to while-Schleife unterbrechen on Fri, 20 May 2005 12:18:48 GMT]]></title><description><![CDATA[<p>Entweder Threads siehe <a href="http://bcb-tutorial.c-plusplus.net/" rel="nofollow">http://bcb-tutorial.c-plusplus.net/</a><br />
oder<br />
z.b. Application-&gt;ProcessMessage() damit andere Programmsache abgearbeitet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/792333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/792333</guid><dc:creator><![CDATA[Galeon]]></dc:creator><pubDate>Fri, 20 May 2005 12:18:48 GMT</pubDate></item><item><title><![CDATA[Reply to while-Schleife unterbrechen on Fri, 20 May 2005 16:13:44 GMT]]></title><description><![CDATA[<p>Hallo,<br />
das Application-&gt;ProzessMessage klingt richtig gut!<br />
ich habe aber probleme beim Implementieren.</p>
<p>laut Hilfe muss ich es einfach in meine Schleife packen, ich bekomme dann aber beim Compilieren folgende fehlermeldung:<br />
[C++ Fehler] TK1.cpp(246): E2247 Zugriff auf '_fastcall TApplication::ProcessMessage(tagMSG &amp;)' nicht möglich</p>
<p>warum?Muss ich vorher noch irgendwelche Parameter verstellen?<br />
wenn ich es mit void_fastcall ProcessMessage(void) deklariere schluckt es der compiler zwar, aber es funktioniert nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/792571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/792571</guid><dc:creator><![CDATA[Scooby]]></dc:creator><pubDate>Fri, 20 May 2005 16:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to while-Schleife unterbrechen on Fri, 20 May 2005 16:29:37 GMT]]></title><description><![CDATA[<p>Sorry die Fehlermeldung ist weg, war wohl nur etwas falsch geschrieben.</p>
<p>aber ich kann die while schleife nicht unterbrechen!<br />
meine while Schleife hat folgende bedingung:<br />
while(rec_buf_c[0] != 0xff)</p>
<p>in meinem 2 button initialisiere ich dann rec_buf dann so:<br />
rec_buf_c[0] = 0xff;<br />
aber die schleife läuft trotz dieser Initialisierung weiter und bricht nicht ab.</p>
<p>das problem ist das der wert in char rec_buf_c[0] nicht ff wird, er bringt mir immer nur ein y mit umlauten (entspricht 98h). Ich weiß nicht warum</p>
]]></description><link>https://www.c-plusplus.net/forum/post/792583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/792583</guid><dc:creator><![CDATA[Scooby]]></dc:creator><pubDate>Fri, 20 May 2005 16:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to while-Schleife unterbrechen on Fri, 20 May 2005 16:59:54 GMT]]></title><description><![CDATA[<p>break;</p>
<p><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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/792605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/792605</guid><dc:creator><![CDATA[Galeon]]></dc:creator><pubDate>Fri, 20 May 2005 16:59:54 GMT</pubDate></item></channel></rss>