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

Re: Programm bleibt stehen Kategorie: Programmierung (von Horst - 4.01.2005 19:39)
Als Antwort auf Re: Programm bleibt stehen von André H. - 4.01.2005 16:39
Ich nutze:
C164CI-ControllerBoard, CC2-Application-Board, OSOPT V3.0
Hallo André,

danke für die schnelle Antwort. Die Capture habe ich erst eingesetzt nachdem sich das Problem nicht
beheben lies und ich annahm dass die beiden Ports (Steuerung des externen LCD und des 2WB)
eventuell von gleichen Systemroutinen genutzt wird. Ich werde die Capture wieder raus nehmen und
versuchen die anderen Treads anzuhalten bis die Temparaturabfrage durch ist.

MfG Horst


> Hallo Horst,
>
> > Die Steuerung läuft tadellos bis auf die Tatsache dass nach einiger Zeit sich die Steuerung aufhängt.
> > Sobald der Thread für die Temperaturerfassung nicht gestartet wird läuft die Steuerung. Wird der
> > Temperaturthread gestartet steht die Steuerung ab und zu nach einigen Minuten jedoch spätestestens
> > einigen Stunden.
> >
> > Hat jemand hierfür eine  Erklärung oder ähnliche Probleme? Ich würde mich freuen wenn jemand eine
> > Lösung für dieses Problem hat. Bin etwas verzweifelt da´ich schon seit ein paar Woche versuche den
> > Fehler zu finden. Kann es zu Timingproblemen kommen wenn da das externe LCD auch über die Ports
> > P1 gesteuert wird????
>
> Was soll das mit dem LCD zu tun haben ??
> Dieses hängt an komplett anderen Ports, als das 2WB-Modem.
>
> > function Modemstatus() returns int
> > {
> >    long erg;
> >    capture global.pf;
> >    twb.init();
> >    erg = twbs.rw_frame(0, allg.Modem_Adresse, 0, 0, 0);
> >    release;
> >    return (erg);
> > }

>
> Hier ist schonmal ein Problem.
> Du capturest die 2WB-Routinen.
> Dies führt zum Hängenbleiben, da die Routinen des Moduls twb.c2 bereits
> gecaptured sind. Und das System-Capture kann man nicht schachteln.
> Wenn Du mit verschachtelten Captures arbeiten willst, muÃ?t Du das
> Modul cap.c2 benutzen.
>
>  
> > function twb_temp(byte adr) returns int
> > {
> >     int Temp;
> >     string s;
> >     byte i;
> >
> >     //Temperatur über TWB abfragen
> >     for i = 1 ... 3
> >       {
> >       capture global.pf;
> >       Temp = twbs.stemp(adr);
> >       release;
> >       if (Temp < 2000)
> >          break;
> >       }
> >     //Temperatur oder Fehler zurück melden
> >     return(Temp);
> > }

>
> Und hier ist nochmal ein nicht erlaubtes Capture.
>
>
> Für was soll hier allgemein das Capture hier überhaupt gut sein ???
> Denn, so wie ich das sehe, wird von Dir der 2WB nur über einen einzigen Thread angesteuert.
>
> MfG André H.
>
> PS: Bitte verwende die Code-Tags, wenn Du C2-Quellcode postest. Ansonsten garantiere
>        ich, daÃ? jeder Quellcode verstümmelt angezeigt wird, sobald GröÃ?er- und Kleinerzeichen
>        darin vorkommen. AuÃ?erdem macht das dem helfenden das Helfen leichter, da dieser
>        die Routinen, dank der C2-Formatierung, besser lesen kann.
>        Ich weiÃ? nicht, wie oft ich das noch im Forum schreiben soll. Sind die Hinweise oberhalb
>        des Text-Eingabefeldes denn so schwer zu lesen ??
>


    Antwort schreiben


Antworten:

Re: Programm bleibt stehen (von André H. - 4.01.2005 20:35)