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
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
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
Danke für die Antworten! Jetzt klappts... Zumidest ohne Flankenerkennung --> dürfte dort nen Fehler drinnen haben... lg Patrick
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
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
Das n steht aber noch vor der geschungenen klammer... Also sollte es nur 0 gesetzt werden, wenn die else if anweisung ausgeführt wird, oder? Wie könnte ich das anders lösen? lg Patrick
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.