Hallo, ich wollte eigentlich nur schnell ein kleines Menü erstelle aber 
jetzt macht mich das Ding fertig.
Im Grunde geht es, nur wenn ich Taster DOWN drücke dann saust das ganze 
Menü durch, von unten nach oben das gleiche. Manchmal geht es 
allerdings! Warum???
Der obere testcode läuft einwandfrei.
Die Taster werden mit Timer0 alle 10ms abgefragt.
Also ist "tast" ja 10ms lang z.b. UP und er läuft das Menü nach oben 
durch. Deshalb wollte ich "tast" wieder auf 0 setzen aber das juckt ihn 
überhaupt nicht.
| 1 | volatile uint8_t tast = 0;
 | 
| 2 | volatile uint8_t menutap = 1;
 | 
| 3 | 
 | 
| 4 | 
 | 
| 5 | void menu(void)
 | 
| 6 | {   
 | 
| 7 |   
 | 
| 8 |   
 | 
| 9 | /*
 | 
| 10 |   if(tast == RIGHT)
 | 
| 11 |     {LCD_puts("right",1);
 | 
| 12 |       menutap = 10;
 | 
| 13 |     }
 | 
| 14 |   else if(tast == LEFT)
 | 
| 15 |     {LCD_puts("Left",1);
 | 
| 16 |     menutap = 5;
 | 
| 17 |     }
 | 
| 18 |   else if(tast == DOWN)
 | 
| 19 |     {LCD_puts("DOWN",1);
 | 
| 20 |     menutap = 50;
 | 
| 21 |     }
 | 
| 22 |   else if(tast == UP)
 | 
| 23 |     {LCD_puts("UP",1);
 | 
| 24 |       menutap = 6;
 | 
| 25 |     }
 | 
| 26 |   else if(tast == ENTER)
 | 
| 27 |     {LCD_puts("enter",1);
 | 
| 28 |       menutap = 8;
 | 
| 29 |     }
 | 
| 30 |   else if(tast == FALSE)
 | 
| 31 |     {LCD_puts("false",1);
 | 
| 32 |           
 | 
| 33 |     }
 | 
| 34 |   
 | 
| 35 |   */
 | 
| 36 |   
 | 
| 37 |   
 | 
| 38 |   
 | 
| 39 |     switch (menutap)
 | 
| 40 |     {
 | 
| 41 |     
 | 
| 42 |     case 1: if(tast==DOWN)
 | 
| 43 |           {menutap = 2;
 | 
| 44 |           tast = 0; 
 | 
| 45 |           }
 | 
| 46 |         LCD_puts("TAP 1",1);
 | 
| 47 |         break;
 | 
| 48 |         
 | 
| 49 |     case 2: if(tast==UP)
 | 
| 50 |           {
 | 
| 51 |           menutap = 1;
 | 
| 52 |           tast =0;
 | 
| 53 |           }
 | 
| 54 |         else if(tast==DOWN)
 | 
| 55 |           {menutap = 3;
 | 
| 56 |           tast = 0;
 | 
| 57 |           }
 | 
| 58 |         
 | 
| 59 |           LCD_puts("TAP 2",1);
 | 
| 60 |           
 | 
| 61 |           break;
 | 
| 62 |     
 | 
| 63 |     case 3: if(tast == UP)
 | 
| 64 |           {menutap = 2;
 | 
| 65 |           tast = 0;
 | 
| 66 |           }
 | 
| 67 |         LCD_puts("TAP 3",1);
 | 
| 68 |         break;
 | 
| 69 |         
 | 
| 70 |     }
 | 
| 71 | }
 |