Ich nuze folgende Lauftechnik, um Tastenabfragen abzufragen. Im speziellen, ob sie >gedrückt wurde< oder >losgelassen wurde<. nicht ob sie >gedrückt IST< oder >nicht Gedrückt IST<
Code:
Xkeylast = Xkeyak                                           'Aktuelle Tastenzustände als letzte Tastenzustände setzen
Xkeyak = 0                                                  'Aktuelle Tastenzustände auf 0 setzen (keine taste gedrückt)
If Pind.6 = 0 Then Xkeyak = Xkeyak Or 2                     'Start-Taste prüfen
If Pind.4 = 0 Then Xkeyak = Xkeyak Or 4                     'New Taste prüfen
If Pind.5 = 0 Then Xkeyak = Xkeyak Or 8                     'Stop Taste prüfen

For Xtb1 = 1 To 4                                           'Alle Tasten durchgehen
   If Keycheck(xkeylast , Xtb1) = 0 Then                    'Taste (XTB1) zuletzt NICHT gedrückt?
      If Keycheck(xkeyak , Xtb1) = 1 Then                   'Taste (XTB1) jetzt gedrückt?
'Taste wurde gedrückt, jezt kann hier weiter gearbeitet werden
      End If
   End If
Next

'===============================================================================
Function Keycheck(v_keydata As Byte , B_key As Byte) As Byte       'Funktion zur prüfen eines Tastenzustandes anhand einer Tasten-Zustandsmaske
Xtb2 = 2 ^ B_key                                            'Tasten-Bitmaske berechnen
Xtb2 = V_keydata And Xtb2                                   'Tasten-Bitmaste mit aktuellen zuständen verknüpfen
If Xtb2 > 0 Then Keycheck = 1                               'Prüfen, ob Taste gedrückt ist
End Function                                                'Funktion verlassen