Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Multithreading Switch Kategorie: Programmierung C (von PeterS - 31.07.2009 12:31)
Als Antwort auf Multithreading Switch 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.

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


    Antwort schreiben


Antworten:

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)