Die Bitwait-Abfrage wie du sie gepostet hast funktioniert von der Sache her sehr gut. Wie könnte ich denn parallel zum Bitwait noch die Leds für die Stellen blinken lassen? Ich habe versucht es folgendermaßen zu lösen
Code:
Do
Do
Toggle Led1
Waitms 500
Toggle Led1
Waitms 500
Loop Until Taster = 0
Bitwait Taster, Set 'Taster losgelassen
Waitms 20
Bitwait Taster, Reset 'Taster gedrückt
Stelle1 = Pina
Do
Toggle Led2
Waitms 500
Toggle Led2
Waitms 500
Loop Until Taster = 0
Bitwait Taster, Set 'Taster losgelassen
Waitms 20
Bitwait Taster, Reset 'Taster gedrückt
Stelle2 = PinA
Do
Toggle Led3
Waitms 500
Toggle Led3
Waitms 500
Loop Until Taster = 0
Bitwait Taster, Set 'Taster losgelassen
Waitms 20
Bitwait Taster, Reset 'Taster gedrückt
Stelle3 = Pina
Do
Toggle Led4
Waitms 500
Toggle Led4
Waitms 500
Loop Until Taster = 0
Bitwait Taster, Set 'Taster losgelassen
Waitms 20
Bitwait Taster, Reset 'Taster gedrückt
Stelle4 = Pina
Gosub Vergleichen
Loop
End
Sub Vergleichen
Do
If Stelle1 = &B10000000 And Stelle2 = &B00010000 And Stelle3 = &B01000000 And Stelle4 = &B11100000 Then
Gosub Erfolg
Else
Gosub Misserfolg
End If
Loop
End Sub
Allerdings erfordert das ja einen zweimaligen Tastendruck zur Eingabe. Da erst die Blinkschleife verlassen wird und dann Bitwait kommt. Und ein einbinden des Bitwait in die Until-Bedingung war mir nicht möglich.
Deshalb hab ich es dann so gestaltet:
Code:
Do
Do
Toggle Led1
Waitms 500
Toggle Led1
Waitms 500
Loop Until Taster = 0
'Taster gedrückt
Stelle1 = Pina
Do
Toggle Led2
Waitms 500
Toggle Led2
Waitms 500
Loop Until Taster = 0
'Taster gedrückt
Stelle2 = PinA
Do
Toggle Led3
Waitms 500
Toggle Led3
Waitms 500
Loop Until Taster = 0
'Taster gedrückt
Stelle3 = Pina
Do
Toggle Led4
Waitms 500
Toggle Led4
Waitms 500
Loop Until Taster = 0
'Taster gedrückt
Stelle4 = Pina
Gosub Vergleichen
Loop
End
Sub Vergleichen
Do
If Stelle1 = &B10000000 And Stelle2 = &B00010000 And Stelle3 = &B01000000 And Stelle4 = &B11100000 Then
Gosub Erfolg
Else
Gosub Misserfolg
End If
Loop
End Sub
Da werden bei gehaltenem Taster zwar alle Stellen beschrieben. Aber ein manipulieren ist nicht möglich.
Lesezeichen