Logikfehler? Kategorie: Programmierung (von Markus H - 5.01.2012 9:45) | ||
| ||
Hallo Gemeinde, nach dem ich nun wieder etwas Zeit gefunden habe, habe ich meine C-Control aus der Versenkung geholt und bin gleich auf ein Problem gesto�en: Ich betreibe am PCF 8574AP i2c Modul von André eine 4x4 Matrix Tastatur und ein 4x20 Display, mit den Tasten A bis D möchte ich durch das "Menü" blättern, funktioniert auch soweit ganz gut, was noch nicht funktioniert: Ich möchte das Display nur alle ca. 3 sec. aktualisieren, bzw, wenn ich eine Taste drücke sollte das Display aktualisiert werden. Hier mein Code: //--------- thread display //--------- { pcflcd.setpcf(8); pcflcd.init(); timer2 = system.timer(); loop { if system.timer() - timer2 >= 3000 or pcfkeyb.getchar(5) != 0 //Macht mir Probleme! { loop { if men == 1 { if umen == 1 { pcflcd.clear(); pcflcd.goto(1,0); pcflcd.print("Startmenue"); pcflcd.goto (2,0); pcflcd.print("Waermeerzeugung:"); pcflcd.put(0x20); // Space pcflcd.print(globvar.betriebsmodus); } if umen > 1 umen = 1; if umen < 1 umen = 1; } if men == 2 { if umen == 1 { pcflcd.clear(); pcflcd.goto(1,0); pcflcd.print("Startmenue10"); } if umen == 2 { pcflcd.clear(); pcflcd.goto(1,0); pcflcd.print("Startmenue11"); } if umen > 2 umen = 1; if umen < 1 umen = 2; } if men == 3 { if umen == 1 { pcflcd.clear(); pcflcd.goto(1,0); pcflcd.print("Startmenue20"); } if umen == 2 { pcflcd.clear(); pcflcd.goto(1,0); pcflcd.print("Startmenue21"); } if umen > 2 umen = 1; if umen < 1 umen = 2; } if men > 3 men = 1; if men < 1 men = 3; timer2 = system.timer(); break; } } } } ich hab bei der "or" Verknüpfung schon einiges mit Klammern rumprobiert, das Display wird immer nur auf Tastendruck aktualisiert! Lasse ich den Ausdruck "pcfkeyb.getchar(5) != 0" weg, wird das DP alle 3 sec. aktualisiert! Evtl. kann mir jemand weiter helfen. Weiter wäre es schön, wenn ich auch die Taste "0" benützen könnte ;-) Vielen Dank und schöne Grü�e, Markus H | ||
Antwort schreiben Antworten: Re: Logikfehler? (von André H. - 5.01.2012 13:33) Re: Logikfehler? (von Markus H - 5.01.2012 15:20) Re: Logikfehler? (von André H. - 8.01.2012 19:37) Re: Logikfehler? (von Markus H - 9.01.2012 19:45) |