Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Capture stoppt Programm Kategorie: Programmierung (von Fabian - 8.02.2011 11:01)
Ich nutze:
C-Control II Station, OSOPT V3.1
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)