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 > Problem beseitigt, > durch Verhinderung des Threadwechsel mit Thread_Lock(1); > klappt die Sache jetzt. > > Kai > > > Hallo miteinander, > > > > ich habe ein kleines Problem, welches ich nicht recht verstehe. Vielleicht erkennt ihr warum die folgende > > Schleife abbricht. > > Dazu folgendes: Der Code ist ein kleiner Ausschnitt aus meinem Programm. Bei einem bestimmten > > Auswahlmenü wird der Thread gestartet und soll wenn keine Taste im Menü gedrückt wird nach ca. 50 sek. > > dieses nicht mehr anzeigen sondern die Uhrzeit und das Datum anzeigen. > > Das klappt. > > Jedoch wird die Schleife nach nicht bestimmter Zeit verlassen und zum Menü zurückgekehrt, ohne das > > die Taste * gedrückt wurde. > > Das Schauspiel beginnt von vorn. Es läuft ansonsten nur Thread 0 (Main). > > Ich glaube ja, dass es mit der Funktion Timer_TickCount() zusammenhängt, aber wie? > > > > Danke im Vorraus Kai > > > > // Thread zur Anzeige der Uhrzeit > > void th_uhrzeit(void) //Thread 4 Uhrzeit einblenden nach 50 Sekunden > > { > > int azeit, bzeit; > > azeit =0; bzeit=0; > > > > Timer_TickCount(); > > do > > { > > azeit = Timer_TickCount(); // Timer Differenz auslesen > > bzeit = bzeit + azeit; // Differenz addieren > > Thread_Delay(10); > > } > > while(bzeit < 5000); // ca. 50 Sekunden > > > > LCD_ClearLCD(); > > do > > { > > anzeigeuhrzeit(); > > LCD_CursorPos(0x50);zeile1="* weiter"; LCD_WriteText(zeile1); > > key1(); > > > > if (key==42) // * > > { > > beep1(); > > key=0; > > Thread_Delay(10); > > Thread_Kill(4); > > LCD_ClearLCD(); > > break; > > } > > } > > while(true); > > } > > //----------------------------------------------------------------------------- > > void anzeigeuhrzeit(void) > > { > > Display_Buffer_Set_Time(); > > LCD_CursorPos(0x00+4); LCD_WriteText(uhrzeit); > > Display_Buffer_Set_Date(); > > LCD_CursorPos(0x40+4); LCD_WriteText(datum); > > } > > > > //---------------------------------------------------------------------------- > > void key1(void) > > { > > key = Key_Scan(); > > key = Key_TranslateKey(key); > > }