Gast
#2551034
Servus Leute, ich hoffe, ihr könnt mir bei einem (für mich) etwas kuriosen Problem helfen. Ich habe mich in den letzten Tagen mit V-USB beschäftigt und diverse Projekte aufgebaut. Nun wollte ich HIDkeys (http://www.obdev.at/products/vusb/hidkeys.html) in eine Zehnertastatur für den Computer umbauen. Grundlage ist eine 3x4-Tastaturmatrix. Der originale Hidkeys-Code funktioniert problemlos, USB-Gerät wird erkannt. Das ganze läuft mit einem 15 MHz-Quarz (F_CPU korrekt eingestellt). Hardware entspricht Hidkeys, die originalen Schalter sind alle entfernt, stattdessen ist die Tastatur angeschlossen: Rows: PORTB, Bits 0..3 Cols: PORTC, Bits 0..2 Der Rest der Ports ist nicht beschaltet. Nun zu meinem Problem: Ich habe die Funktion keyPressed für meine Bedürfnisse angepasst und das Scannen der Cols und Rows in eigene Funktionen ausgelagert, um das Problem deutlicher zu beschreiben.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
Wird nur GetRows() oder nur GetCols aufgerufen, klappt alles, die Tasten (natürlich nur Zeilen bzw Spalten jeweils gleichen Werten) werden korrekt erkannt. Damit sollte auch die Hardware in Ordnung sein (richtige Ports, Leitungen korrekt angeschlossen). Werden aber beide Befehle nacheinander aufgerufen (wie im o.g. Code), spielt die Tastatur verrückt, es werden falsche Tasten ausgegeben, teilweise auch dann, wenn keine Taste gedrückt ist. Gruß, Daniel