Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo! > > > > Ich versuche von Matlab aus einen Integerwert über RS232 an die CControl zu schicken, aber > > sobald die Daten im Eingangspuffer anliegen(überprüft mit hwcom.rxd()) komme ich nicht zu den > > nachfolgenden Anweisungen, statt dessen wird ein Reset des main Threads durchgeführt. Bitte um Hilfe! > > > > <code> > > thread main > > //--------- > > { > > byte i[2]; > > int w; > > > > > > //Initialisieren der Schnittstelle > > hwcom.init(); > > hwcom.setspeed(5); > > lcdext.init(); > > lcdext.clear(); > > lcdext.zahl(10); > > sleep 2000; > > lcdext.clear(); > > lcdext.zahl(13); > > > > > > > > loop > > { > > wait hwcom.rxd(); > > { > > hwcom.receive(i,2,1000); > > w = i[0] or (i[1] shl 8); > > lcdext.clear(); > > lcdext.zahl(w); > > } > > } > > > > > > } > > </code> > > Guten Abend Alex, > > Dein Programm sieht soweit ganz ok. aus. Die Grundstuktur funktioniert bei mir. > Jedoch würde ich vor wait hwcom.rxd() auf jedenfall ein flush setzen. Etwas nervös machen mich > die Klammerung des nichtausgeführten Codes. Falls Du statt dem wait hwcom.rxd() vormals soetwas > wie if hwcom.rxd() { ...} stehen hattest so muss ich sagen, das eine solche Synconisation auf > sporadische serielle Daten bei mir auch nicht sehr gut funktionierten (Datenverlust). > > <code> > thread main > //--------- > { > byte i[2]; > int w; > > > //Initialisieren der Schnittstelle > hwcom.init(); > hwcom.setspeed(5); > lcdext.init(); > lcdext.clear(); > lcdext.zahl(10); > sleep 2000; > lcdext.clear(); > lcdext.zahl(13); > ......... > hwcom.flush(); > loop // Diese LOOP wartet auf serielle Daten von hwcom > { > wait hwcom.rxd(); > hwcom.receive(i,2,1000); > w = i[0] or (i[1] shl 8); > lcdext.clear(); > lcdext.zahl(w); > ... > > } > ........ > } > </code> > Gruss Matthias