Probleme mit Menüführung; switch-case

OP #430330
Lesenswert?

Hey Leute!

Ich habe ein kleines Problem mit meinem C-Code (CVAVR).
Im Anhang befindet sich der c-codes.
Das Problem liegt daran, dass mir das Programm immer in den 
case:Optionen einsteigt, egal, wie ich "Zustand" definiere...


lg Patrick
Angehängte Dateien:
#430349
Lesenswert?

aus Deinem Code:
1
Zustand=Optionen; 
2

3
   switch (Zustand) 
4
   {
5
     case Optionen:
Wenn Du wirklich willst, dass nicht nur der case Optionen Zweig 
ausgeführt wird, solltest Du ev. die Zuweisung Zustand = Optionen 
weglassen.
Vielleicht gehört die ja in die Initialisierung und nicht in die 
while(1) Schleife ?!

Gruß, Stefan
Gast #430350
Lesenswert?

ist dir aufgefallen das du
"Zustand=Optionen; " in deiner while schleife stehen hast und deswegen 
auch nur optionen aufgerufen wird ?!?!

versuchs mal damit die zeile "Zustand=Optionen; " VOR deiner schleife 
stehen zu haben ...  könnte evtl klappen ... :-)

gruß
rene
OP #430456
Lesenswert?

Ich hab jetzt ein neues Problem...

Wenn ich nun vom Zustand Optionen in einen Anderen wechsle, wird das 
display ständig aktualisiert...
Ich habe bereits versucht, mit einer einfachen if Anweisung das Problem 
zu lösen --> hat aber leider nicht geklappt...

Im Anhang befindet sich der neue Code...
Ich hoffe ihr könnt mir weiterhelfen...


lg Patrick
Angehängte Dateien:
Gast #430502
Lesenswert?

Hallo Patrick,

das Display wird zu Anfang jeder case-Anweisung aktualisiert, wenn n=0 
ist.
Mit if(!n) fragst Du das ab.
Vor dem break jeder Case-Anweisung steht "n=0".
Damit endet jede case-Anweisung mit dem Auftrag, das Display mit dem 
Eintritt in die nächste case-Anweisung zu aktualisieren.

Gruß
Joachim
OP #430510
Lesenswert?

Hab jetzt den Fehler nach stundenlangem Suchen noch selbst gefunden...
1
   
2
  case Sprache:
3
         if(!n){LCD_puts(M1[lang][4], M1[lang][2]);n=1;}    
4
...
5
         else if(Enter);
6
         {  delay(Time);
7
            lang = 0;
8
            n=0;}    //Sprache auf Deutsch --> "0" setzten
9
      break;

Hab aus versehen nen ";" nach "else if(Enter) gemacht...


lg Patrick

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren