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 möchte die Funktion hwcom.receive() verwenden um Antworten eines GSM-Modems zu empfangen. > Dazu teste ich das Porgramms "Ser2.C2" von der CD-ROM des Buches Messen Steuern und Regeln > mit C-Control2. Mit dabei ist ein gutes Terminalprogramm über das man gute Kontrolle über die > Handshakeleitungen RTS/CTS und die weiteren hat. > > So nun endlich zum Problem: Es sieht so aus, als ob das Porgramm in der Funktion hwcom.receive() > hängenbleibt! > ich setze vor dem Aufruf der Funktion einen Ausgangsport an dem ich eine LED angeschlossen habe > und nach dem die Funktion verlassen wird setze ich ihn zurück. > Wenn ich nun über das Terminalprogramm ein Zeichen sende, leuchtet die LED geht aber nicht mehr aus. > Somit komme ich aus der Funktion nicht mehr heraus! Aber wieso? > Auf das Display wird auch nichts geschrieben. > > Ich hoffe es kann mir jemand von Euch weiterhelfen. Im voraus schon mal vielen Dank. > > Ich benutze das aktuelle OS V3.0 und das neuste Modul hwcom. > > Anbei der Quelltext: > > //------------ > thread main > //------------ > { > string s; > > hwcom.init (); > hwcom.setspeed (hwcom.SPEED_9600); > lcdext.init(); > lcdext.print("Terminal"); > loop > { > s = " "; > wait hwcom.rxd(); > ports.set(12,1); // LED setzen > hwcom.receive(s,16,1000); // besagte Funktion > sleep (100); > ports.set(12,0); //LED rücksetzen -> wird nie gemacht! > lcdext.goto(1,0); > lcdext.print(s); > wait hwcom.rxd(); > lcdext.goto(0,0); > lcdext.print(s); > } > }