Hallo,
ich glaube ich kann tatsächlich zum erstenmal jemandem helfen 
Also ich habe das selbe Projekt wie du nur mit 4 Tastern. Mein Code funktioniert auch wunderbar. Dies ist er:
Code:
$regfile = "m8def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
Config Portd.5 = Output
Config Pind.4 = Input
Config Pinb.0 = Input
Config Pind.7 = Input
Config Pinc.3 = Input
Taste1 Alias Pind.7
Taste2 Alias Pinb.0
Taste3 Alias Pind.4
Taste4 Alias Pinc.3
Portd.7 = 1
Portb.0 = 1
Portc.3 = 1
Portd.4 = 1
Dim Code(4) As Byte
Do
If Taste1 = 0 Then 'wenn kein Widerstand vorhandem, d.h. strom fliesst
Portd.5 = 1
Code(1) = Code(2)
Code(2) = Code(3)
Code(3) = Code(4)
Code(4) = 1
While Taste1 = 0
Wend
Elseif Taste2 = 0 Then
Portd.5 = 1
Code(1) = Code(2)
Code(2) = Code(3)
Code(3) = Code(4)
Code(4) = 2
While Taste2 = 0
Wend
Elseif Taste3 = 0 Then
Portd.5 = 1
Code(1) = Code(2)
Code(2) = Code(3)
Code(3) = Code(4)
Code(4) = 3
While Taste3 = 0
Wend
Elseif Taste4 = 0 Then
Portd.5 = 1
Code(1) = Code(2)
Code(2) = Code(3)
Code(3) = Code(4)
Code(4) = 4
While Taste4 = 0
Wend
Else
Portd.5 = 0 'kein strom auf pin
End If
If Code(1) = 1 Then
If Code(2) = 2 Then
If Code(3) = 3 Then
If Code(4) = 4 Then
Portd.5 = 1
End If
End If
End If
End If
Loop
Der Code überwacht 4 Pins ob sie verbunden werden (Taster gedrückt) und schreibt die Nummer des Pins in eine Variable.
Diese wird immer weiter nach vorn verschoben, so dass wenn das Array die richtige konstelation aufweist darauf reagiert wird (in diesem fall das bewegen eines Servos, was ich aber noch ändere).
Wichtig hierbei ist nach jedem erkannten Tastendruck die Schleife die solange wartet wie die Taste gedrückt ist. Damit wird verhindert das die Zahl mehrmals in das Array geschrieben wird wenn die Taste nur einmal gedrückt wird.
Ich hoffe ich konnte helfen.
Es grüßt,
Basteltisch
Lesezeichen