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

Re: Problem mit pcfkeyb (interrupt?) Kategorie: Programmierung (von nitraM - 16.02.2010 11:14)
Als Antwort auf Re: Problem mit pcfkeyb (interrupt?) von Markus H - 15.02.2010 21:32
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT V3.0, OSOPT V3.1
Hallo  Markus

getchar wartet auf einen Tastendruck, der durch den Interupt erkannt wird.
Wird der PCF abgefragt, wird der Int wieder gelöscht...

...schnipp...
 
/****************************************/
/* Auf Tasteneingabe warten und         */
/* Wert als ASCII-Zeichen zurückgeben   */
/****************************************/
function getchar(byte delay) returns byte //delay in ms = Wartezeit bis Abfrage
{int chars,chars2; byte i;
 chars=0;
 wait ports.get(IntPort)==0;
 if delay
    {chars=getstate();
     sleep delay;}
 chars2=getstate();
 if chars2 {chars=chars2;pressed=0xFF;} else pressed=0;
 for i=0...15
   if chars and (1 shl i)
        return Char[i];// Rückgabe des ASCII-Codes beim Drücken einer Taste
 return 0;// Rückgabe von 0 beim loslassen einer Taste
}

      ....schnapp...

Dein Programm geht nach dem Schema:
1. warte bis eine Taste gedrückt wurde
   ist die Taste ="A" dann mem = mem - 1
   wenn nicht...

    if pcfkeyb.getchar(0) == 0x42
       {
       men = men - 1;
       umen = 0;
       }


2. warte bis wieder eine Taste gedrückt wurde
   ist die Taste ="B" dann mem = mem + 1
   wenn nicht...


    if pcfkeyb.getchar(0) == 0x43
       {
       umen = umen + 1;
       }
    if pcfkeyb.getchar(0) == 0x44
       {
       umen = umen - 1;
       }
 


Ich hoffe es wird dir jetzt klar...

Grü�e nitraM


    Antwort schreiben


Antworten:

Re: Problem mit pcfkeyb (interrupt?) (von Markus H - 25.02.2010 20:53)