Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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: