Hi
Habe ein ähnliches Problem wie du. Ist zwar nicht die schönste lösung aber sie funktioniert super ;P


Code:
'-------------------------------------------------------------------------------
'------- Tastatur Auswertung
'-------------------------------------------------------------------------------
Tast_a:
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
Dim Freigabe As Bit
Freigabe = 0
Tsta = 13
'-------------------------------------------------------------------------------
Do
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
Do
'-------------------------------------------------------------------------------
Tsta = 13
If Pinc.7 = 1 Then

Tsta = 1
End If
If Pinc.6 = 1 Then
Tsta = 2
End If
If Pinc.5 = 1 Then
Tsta = 3
End If
'-------------------------------------------------------------------------------
Porta.7 = 1
'-------------------------------------------------------------------------------
If Pinc.3 = 1 Then
Tsta = 4
End If
If Pinc.2 = 1 Then
Tsta = 7
End If
If Pinc.1 = 1 Then
Tsta = 10
End If
'-------------------------------------------------------------------------------
Porta.7 = 0
'-------------------------------------------------------------------------------
Portc.0 = 1
'-------------------------------------------------------------------------------
If Pinc.3 = 1 Then
Tsta = 5
End If
If Pinc.2 = 1 Then
Tsta = 8
End If
If Pinc.1 = 1 Then
Tsta = 11
End If
'-------------------------------------------------------------------------------
Portc.0 = 0
'-------------------------------------------------------------------------------
Portc.4 = 1
'-------------------------------------------------------------------------------
If Pinc.3 = 1 Then
Tsta = 6
End If
If Pinc.2 = 1 Then
Tsta = 9
End If
If Pinc.1 = 1 Then
Tsta = 12
End If
'-------------------------------------------------------------------------------
Portc.4 = 0                                                 'PC5
Portc.0 = 0                                                 'PC6
Porta.7 = 0                                                 'PC7
'-------------------------------------------------------------------------------
Loop Until Tsta = 13 Or Freigabe = 1
Freigabe = 1
'-------------------------------------------------------------------------------
If Random > 6 Then Random = 1
Loop Until Tsta < 13
Tstaa = Tsta
Return
Man muss dazu sagen das ich dabei ein Tastenfeld mit 12 Tasten ansteuere . und somit der Wert nciht über 13 gehn kann.
Hab erst im nachinein rausgefunden das es schon so eine auswertung gibt aber die version gefällt mir besser ^^

Im grunde ist das deine Idee mit der Variable die erst zurückgesetzt wird wenn man die Taste loslässt.

in einer durchlaufenden Schleife sähe das in etwa so aus:

Code:
'-------------------------------------------------------------------------------
'------- Hauptschleife
'-------------------------------------------------------------------------------
Do
'-------------------------------------------------------------------------------
'Tastenauswertung
'-------------------------------------------------------------------------------
Taste = 13
If Pinc.7 = 1 Then
Taste = 1
End If
If Pinc.6 = 1 Then
Taste = 2
End If
If Pinc.5 = 1 Then
Taste = 3
End If
'-------------------------------------------------------------------------------
Porta.7 = 1
'-------------------------------------------------------------------------------
If Pinc.3 = 1 Then
Taste = 4
End If
If Pinc.2 = 1 Then
Taste = 7
End If
If Pinc.1 = 1 Then
Taste = 10
End If
'-------------------------------------------------------------------------------
Porta.7 = 0
'-------------------------------------------------------------------------------
Portc.0 = 1
'-------------------------------------------------------------------------------
If Pinc.3 = 1 Then
Taste = 5
End If
If Pinc.2 = 1 Then
Taste = 8
End If
If Pinc.1 = 1 Then
Taste = 11
End If
'-------------------------------------------------------------------------------
Portc.0 = 0
'-------------------------------------------------------------------------------
Portc.4 = 1
'-------------------------------------------------------------------------------
If Pinc.3 = 1 Then
Taste = 6
End If
If Pinc.2 = 1 Then
Taste = 9
End If
If Pinc.1 = 1 Then
Taste = 12
End If
'-------------------------------------------------------------------------------
Portc.4 = 0                                                 'PC5
Portc.0 = 0                                                 'PC6
Porta.7 = 0                                                 'PC7
'-------------------------------------------------------------------------------
'------- Tastenabfrage zu Ende folgt: Tastensperre für Prellfilter
If Taste = 13 Then Taste_freigabe = 1                       'Setzt die Freigabe auf eins wenn keine Taste gedrückt wurde sprich Taste = 13
If Taste_freigabe = 0 Then                                  'Wenn Freigabe 0 dann also wenn die Zahl zuvor nicht 13 war setzte Taste auf 13
Taste = 13
Else                                                        'Wenn Taste Freigabe = 1 dann übernehme die anstehende Zahl in die Ausgabe
Taste_ausgabe = Taste                                       'Wert Übergabe
End If
If Taste <> 13 Then                                         'Wenn Taste ist nicht 13 dann setzte Freigabe wieder auf 0
Taste_freigabe = 0                                          'Freigabe für Tasten 0
End If
'-------------------------------------------------------------------------------
'------- Tastensperre Ende
'------- Starte Menu Teil
'-------------------------------------------------------------------------------
blablabla hier kommt das programm


'-------------------------------------------------------------------------------
'------- Loop Ende Hauptschleife
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
Ende_schleife:
Taste_ausgabe = 13
Loop


So hoffe mal ich hab dir weiter geholfen
mfg

Fera ;P