Capture stoppt Programm Kategorie: Programmierung (von Fabian - 8.02.2011 11:01) | ||
| ||
Hallo, nachdem ich bisher alle Probleme mit Hilfe des Forums lösen konnte, bin ich jetzt doch auf Grund gelaufen. Ich habe eine Textausgabe auf die Com-Schnittstelle als Funktion. Diese ist global und wird in verschiedenen Programmteilen (6 verschiedene Threads) aufgerufen um die Information auszugeben. Ich habe das in der folgenden einfachen Funktion (ohne capture und release) realisiert: function ps(string T1, string T2, int D1, int D2, byte dbl, byte ldb) { if debug >= dbl and ldb==1 { int std,min,sec; string s; // Uhrzeit erstellen std=system.hour(); min=system.minute(); sec=system.second(); s=((std /10) +0x30) + ((std % 10) +0x30) + ":"; s=s + ((min /10) +0x30) + ((min % 10) +0x30) + ":"; s=s + ((sec /10) +0x30) + ((sec % 10) +0x30)+" "; capture; hwcom.print(s); // write time and date hwcom.print2(T1); hwcom.tab(); hwcom.print2(T2); hwcom.tab(); hwcom.num(D1); hwcom.tab(); hwcom.num(D2); hwcom.ret(); release; } } Dabei geraten allerdings die Ausgaben immer wieder durcheinander, sodass es Zeilen mit gemischten Informationen gibt. Jetzt habe ich zur Synchronisation capture und release hinzugefügt, damit die Zeile "am Stück" bleibt. Leider bleibt dabei das Programm stehen. Es ist die einzige Verwendung von capture und release. Ohne dem läuft alles normal und auch langzeitstabil. Gru� Fabian | ||
Antwort schreiben Antworten: Re: Capture stoppt Programm (von Ralf Schroeder - 13.02.2011 12:32) |