wollte nur wissen ob das möglich wäre die pins für interupt an portd zu nutzen wärend da die getkbd() subroutine läuft die alle 20ms den port debounced sind die interupts dann nutzlos da sich ja der portzustand ändert
ich verstehe zwar nicht, was debounce mit Getkbd() zu tun hat, aber warum benutzt du nicht eine eigene Function, um die Tasten abzufragen ?
Getkbd macht nichts anderes als diese Function ...
Code:
$regfile = "8515def.dat"
'dimension a variable that receives the value of the pressed key
Dim B As Byte
Declare Function Keyboard()as Byte
'loop for ever
Do
B = Keyboard()
'die Werte von B entsprechen denen von "Getkbd()"
Loop
Function Keyboard
Local K As Byte
K = 16 'keine Taste gedrückt
Portd = &B11110111 'außer Portd.3 alles auf High
Ddrd = &B00000111 'Portb.0,1,2 = Ausgang, der Rest Eingang
Portd = &B11110000 'Pullup aktivieren
Waitus 5 '5µs warten
If Pind.4 = 0 Then K = 0
If Pind.5 = 0 Then K = 4
If Pind.6 = 0 Then K = 8
If Pind.7 = 0 Then K = 12
Ddrd = &B11110000 'Portb.4,5,6,7 = Ausgang, der Rest Eingang
Portd = &B00000111 'Pullup aktivieren
Waitus 5 '5µs warten
If Pind.0 = 0 Then K = K + 0
If Pind.1 = 0 Then K = K + 1
If Pind.2 = 0 Then K = K + 2
Keyboard = K
End Function
Damit kann man dann jede Tastaturkombination benutzen.
Lesezeichen