do while Schleife bricht ab Kategorie: Programmierung C (von Kai - 9.02.2009 22:08) | ||
| ||
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); } | ||
Antwort schreiben Antworten: Re: do while Schleife bricht ab (von Kai - 12.02.2009 21:20) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum