Dei Widerstände haben ja immer eine gewisse unterschiedliche Toleranz, daher kann es in selten Fällen vorkommen das die eingetragenen Werte bei der Case Anweisung geändert werden müssen. Du hast das ja offensichtlich korrekt gemacht!
Man sollte die Case Anweisungen halt so wählen das möglichst pro Taster ein weiter Bereich umfasst wird und es natürlich nicht zu Überscheidungen kommt.
Gewöhnlich passt folgendes:
Code:
'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
If Ws < 500 Then
Select Case Ws
Case 370 To 450 'oder 400 x 450
Tastenabfrage = 1
Ton = 550
Case 300 To 369
Tastenabfrage = 2
Ton = 500
Case 230 To 299
Tastenabfrage = 3
Ton = 450
Case 150 To 229
Tastenabfrage = 4
Ton = 400
Case 80 To 149
Tastenabfrage = 5
Ton = 350
Case Else
Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
Lesezeichen