Re: Problem beim Loslassen einer Taste Kategorie: CC2-Unit & Appl.Board / CC2-Station (von André H. - 14.09.2003 11:05) | |
Als Antwort auf Problem beim Loslassen einer Taste von Michael Zapf - 13.09.2003 0:47
| |
Hallo Michael, Baue ein kleines sleep nach dem Abfragen der Tastatur ein. (z.B. sleep 20;) Das sollte dieses Problem lösen. Die Tastenwerte, die Zurückgegeben werden sind nicht zufällig. Dies lässt sich mit der steigenden Spannung am 100nF Kondensator vor dem AD-Port erklären. Statt dem sleep könntest Du auch ein "wait rbkeyb.get()==0;" einbauen. Es wird dann nach einem Tastendruck solange gewartet, bis diese wieder losgelassen wurde. In Deinem Fall: b = rbkeyb.get(); if (b!=0) m_byKey = b; wait rbkeyb.get()==0; �brigens werde ich rbkeyb.c2 überarbeiten und an stkeyb.c2 anpassen. Es wird aber kompatibel zur alten Version bleiben. MfG André H. > Hallo, > > ich habe gerade versucht, ein kleines Testprogramm zu schreiben, das die Tasteneingabe auf der 1*12-Tastatur > auf dem externen LCD ausgibt. Als ich "verga�", den Cursor zurückzusetzen, sah ich, dass beim Loslassen > mancher Tasten zufällige andere Tasten ausgelöst werden: Hier drücke ich kurz die "7", und auf der Anzeige > (4*16) erscheint > > 7777777777777777 > 7777777777777777 > 7777777777777777 > 777441008552##99 > > Hardware: CC2 auf ReglerBoard, 1*12-Tastatur über Adapter angeschlossen, 4*16-LCD. Aktuelles OS geladen > (meldet CC2 V2). > > Das gehört doch nicht so, oder? Hier das Programm (Auszug): > > ------------------ > function initialisiere() { > rblcd.init(); > rblcd.clear(); > rbkeyb.select(0); > m_bEnde = 0; > } > > function wertanzeige(byte b) { > rblcd.put(b); > } > > thread keypoll { > byte b; > b = rbkeyb.get(); > if (b!=0) { > m_byKey = b; > } > } > > thread main { > initialisiere(); > run keypoll; > while (!m_bEnde) { > wait m_byKey; > wertanzeige(m_byKey); > m_byKey = 0; > } > halt; > } > ------------------- > > Michael Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: |