Re: kleines Problem mit "halt" Befehl ... Kategorie: Programmierung (von André H. - 27.06.2004 15:39) | ||
Als Antwort auf kleines Problem mit "halt" Befehl ... von Thorsten - 27.06.2004 12:22 | ||
| ||
Hallo Thorsten, > ich habe ein kleines Problem mit meinem Programm, welches so aussieht: > > " > //------------ > thread main > //------------ > > { > loop > { > if ports.adc(7)*0.004 <3 run daten; > if p > 10 halt daten; > } > } > " > > sobald p den Wert erreicht hat, stopt das Unterprogramm (daten) auch, wie es auch soll. > Aber, wenn ich AD Port 7 nun öffter unter "3" bringe, läuft irgendwann (in verschiedenen > Zeitabständen) der Thread daten wieder an, obwohl "p" immernoch > 10 ist. > > Warum ist das so ?? > Die Bedingung p > 10 ist doch erfüllt und sollte daten stoppen.... Das Programm macht genau das, was Du im Code geschrieben hast. Sobald die Spannung an ADC(7) unter 3,0V sinkt wird der Thread "daten" gestartet. Bei run <threadname> erfolgt ein Threadwechsel. Nachdem der Thread main wieder "Rechenzeit bekommt und p>10 ist, wird der Thread daten wieder angehalten. Das ist einfach Logik. Wenn Du willst, da� der Thread daten erst wieder anlaufen soll, wenn p kleiner gleich 10 ist, so mu� dies so aussehen: //------------ thread main //------------ { loop { if p > 10 halt daten; else if ports.adc(7)*0.004<3 run daten; } } MfG André H. PS: Benutze bitte die code-Tags, um Quellcode zu formatieren. Ansonsten wird der Quellcode besonders bei den Benutzung von grö�er- und kleiner-Zeichen nicht korrekt angezeigt ! Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |