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 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 <code>run <threadname></code> erfolgt ein Threadwechsel. > Nachdem der Thread main wieder "Rechenzeit bekommt und <code>p>10</code> 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: > <code>//------------ > thread main > //------------ > { > loop > { > if p > 10 > halt daten; > else > if ports.adc(7)*0.004<3 run daten; > } > }</code> > > 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 !