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
Lesezeichen