Hi Max,
du mußt die Tastenabfrage eventuell an dein RN-Control anpaßen. Die Tastenabfrage erfolgt über einige Widerstände am analogen Port. Durch gewisse Toleranzen liefern die Tasten bei jedem RN-Control geringfügig andere Tastenwerte. Ich hab die Select Case Anweisungen bei dem Demo auf die schnelle etwas zu eng definiert, daher rutscht manchmal eine Taste neben den definierten Bereich.
Am besten mal PC mit Terminaprogramm anschließen und mit Print in der Tastenabfrage den Wert WS ausgeben lassen. Bei jeder Taste kommt ein anderer Wert raus.
Du mußt die Select Case Anweisung so anpassen, das der WS-Wert bei jeder Taste in etwa in der Mitte der einzelnen Case-Anweisung liegt
Das muß nur einmal gemacht werden, dann kannst du immer wieder diese Werte nehmen.
In der Regel paßt jedoch folgende Tastenfunktion bei fast allen RN-Control´s:
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 400 To 450
Tastenabfrage = 1
Ton = 550
Case 330 To 380
Tastenabfrage = 2
Ton = 500
Case 260 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 90 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
Eventuell also diese Funktion einfach gegen deine austauschen!
Oben siehst du auch den Print Befehl, der den WS Wert auf einem Terminalprogramm ausgeben kann. Der Sound Befehl ist ja ganz nützlich, aber für weitere experimente solltest du auch Terminalprogramm und RS232 Verbindung nutzen. In Bascom ist Terminalprogramm eingebaut.
Das hat aber eigentlich nichts mit RN-Digi zu tun
Und noch gleich ein Hinweis, du solltest unter Optionen/COmpiler/Chip bei Bascom bei HW Stack, SW Stack und Framesize höhere Werte einsetzen. Wenn du überall 32 einsetzt, dann bist du zumindest bei diesem und ähnlichen Programmen auf der sicheren Seite. Ansonsten kann der Stack bei der Verwendung von Unterfunktionen schnell mal überlaufen.
Lesezeichen