Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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: > <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; > } > } > } > } > </code> > > 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 >