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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > Hallo, > > > > > > > > im Thread 1 m funktioniert der folgende Programmauschnitt nicht, > > > > prüfe ich den Programmausschnitt in void Main(void) funktioniert er problemlos. > > > > > > > > d.h. Thread 1: > > > > > > > > bei case 16: die Variable setzt sich auf Va=0, ein Zugriff eines anderen threads ist durch Thread_Lock > > > > verhindert. Fügt man vor der Debugausgabe eine Erneute I²C Abfrage ein, wird Va=16 in der IDE augegeben, > > > > die darauf folgenden while-Schleife wird aber immer noch ignoriert. > > > > > > > > im Main() : > > > > behält die Variable dagegen Ihren Wert von Va=16, die while-Schleife funktioniert problemlos > > > > > > > > > > > > > > > > > > > > Thread_Lock(1); > > > > > > > > while(Varlocal==0) > > > > > > > > > > > > { > > > > I2C_Start(); > > > > I2C_Write(79); > > > > Vb = I2C_Read_NACK(); > > > > I2C_Stop(); > > > > Va=~Vb &240; > > > > > > > > > > > > switch(Va) > > > > > > > > {case 16: if (Tabprog9[Varlocal]==14)Tabprog9[Varlocal]=15 ; > > > > else Tabprog9[Varlocal]=14 ; > > > > if ( Tabprog9[Varlocal]==14)Text="0";else Text="1"; > > > > LCD_Locate_I2C(2,8);LCD_Write_Text_I2C(); > > > > > > > > Msg_WriteInt(Va); ....................................................Ausgabe in der IDE: 0 !!!! > > > > > > > > while (Va==16) > > > > {I2C_Start(); > > > > I2C_Write(79); > > > > Vb = I2C_Read_NACK(); > > > > I2C_Stop(); > > > > Va=~Vb &240;} break; > > > > } > > > > > > > > > > > > Thread_Delay(15);} > > > > > > > > > > > > Vieleicht ist es ein bug oder jemand kann mir einen Tipp geben was ich falsch mache. > > > > > > Was passiert denn im Debugger wenn Du in der Zeile bei " while (Va==16)" einen SingleStep > > > machst? Geht er dann nicht in die Schleife? Wie ist der Wert von Va zu dem Zeitpunkt? > > > > > > Gruss Peter > > > > > > > > > > > Im voraus vielen Dank > > > > > > > > MfG > > > > Thomas > > > > Hallo, > > > > täusche ich mich oder funktionieren die Haltepunkte im thread nicht? > > Die Haltepunkte werden jedenfalls ignoriert. Die Ausgabe von Va in der IDE ist 0 > > > > Gruss > > Thomas > > > Hallo , > Halltepunkt funktioniert doch aber überspringt die Schleife > > Gruss Thomas