Multithreading Switch Kategorie: Programmierung C (von ThomasJ - 30.07.2009 9:09) | ||
| ||
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. Im voraus vielen Dank MfG Thomas | ||
Antwort schreiben Antworten: Re: Multithreading Switch (von PeterS - 31.07.2009 12:31) Re: Multithreading Switch (von ThomasJ - 31.07.2009 13:39) Re: Multithreading Switch (von ThomasJ - 31.07.2009 14:55) Re: Multithreading Switch (von PeterS - 31.07.2009 15:23) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum