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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hi, > > Deine Schleife funktioniert korrekt! Wenn keine Taste gedrückt wird, wird immer 0 ausgegeben, > ansonsten ein Zahlenwert der sich mit jeder Taste ändert. An der Hardware liegts nicht! Das Demo- > Programm LCD_Key.cc funktioniert auch korrekt, es wird die Taste am LCD angezeigt die gedrückt > wird. > > Wenn ich bei meinem Programm, (hier aufgeführt ein paar Zeilen weiter unten) den Datentyp für key_ch > ändere von Char auf Integer ,dann funktioniert die Schleife!!!!!!!!!!!!!!!!!!!! > Es wird solange kein Zeichen ausgegeben, bis eine Taste gedrückt wird und dann die gedrückte Taste > ausgegeben. > > Ist das Funktionieren der while-Schleife vom Datentyp abhängig? Char geht doch auch von -128 bis 127 > > > Gruss > > > > > > > > > > Hallo, > > > > word key_in; > > > > while(1) > > { > > key_in=Key_Scan(); > > AbsDelay(500); > > Msg_WriteWord(key_in) > > } > > > > Teste mal diese Schleife. Wenn keine Taste gedrückt wird, sollte key_in 0 sein. Ansonsten wird > > für jede gedrückte Taste ein Bit im Wert von key_in gesetzt. Sollte der Wert ungleich null sein wenn > > keine Taste gedrückt ist, dann ist vermutlich die Hardware Schuld. Bitte dann erstmal die Verbindung > > der Tastatur überprüfen. > > > > Gruss Peter > > > > > > > Hallo, > > > > > > ich möchte die Tastatur solange abfragen bis ein Zeichen gedrückt wurde und die gedrückte Taste > > > einer Variablen übergeben. > > > > > > das Tastaturabfrage-Programm funktioniert bei mir aber nicht. > > > ______________________________________________________ > > > word key_in; > > > char key_ch; > > > > > > void main(void) > > > { > > > Key_Init(); > > > key_ch = -1; > > > > > > do > > > { > > > key_in=Key_Scan(); > > > key_ch=Key_TranslateKey(key_in); > > > AbsDelay(200); > > > } > > > while(key_ch == -1); > > > Msg_WriteChar(key_ch); > > > > > > while(1); > > > } > > > ________________________________________________________ > > > > > > nach dem Start wird folgendes ausgegeben: > > > > > > Interpreter gestartet - 2kb RAM > > > ÿ > > > > > > > > > D.h. die do-Schleife wird genau 1x durchlaufen, auch wenn key_ch==-1 ist und dann das Zeichen "ÿ" > > > ausgegeben, das ist nach meiner Tabelle das Zeichen 255 des ANSI Zeichensatzes. > > > > > > Kannst Du das reproduzieren?? > > > > > > > > > Gruss > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > ich weiß nicht genau was Du machen willst. Möchtest Du die Tastatur pollen bis eine Taste gedrückt wurde, > > > > empfehele ich folgendes: > > > > > > > > do > > > > { > > > > key_in=Key_Scan(); > > > > key_ch=Key_TranslateKey(key_in); > > > > AbsDelay(200); > > > > } > > > > while(key_ch == -1); > > > > Msg_WriteChar(key_ch); > > > > > > > > Die Schleife läuft solange, bis der Wert von key_ch ungleich -1 ist. Das bedeutet ein gültiges Zeichen > > > > wurde getippt. > > > > > > > > > > > > Gruss Peter > > > > > > >