PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [gelöst] brauche Hilfe bei Funkt. getatkbd()



tiller
06.12.2007, 22:40
Hallöchen!

Ich habe wie in dem Buch "Programmieren der AVR..." von Claus Kühnel beschrieben eine PC-AT-Tastatur an mein RN-Control angeschlossen und die im Buch dargestellte Software leicht modifiziert, sodass folgendes dabei rauskam:


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32

$crystal = 16000000
$baud = 9600

Config Keyboard = Pind.2 , Data = Pind.4 , Keydata = Keydata
Config Portc = Output

Dim Key As Byte
Dim I As Byte

For I = 0 To 7
Portc.i = 1
Next

Portc.0 = 0
Do
Key = Getatkbd()
Loop Until Key <> 0
Portc.1 = 0

Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0

'shifted keys UPPER case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0

End


Das Programm sollte eigentlich nur dazu dienen, die Funktionalität der beschriebenen Kombination zu testen. Leider tut sich beim Betätigen einer Taste aber absolut nichts. Ich hoffe ihr wisst einen Rat.

Kann es vielleicht sein, dass die vom Board bereitgestellte Leistung nicht für die Tastatur reicht? Greife die Spannung für das Keyboard am für externe 5V-Komponenten vorgesehenen Stecker ab.

Grüße, Thomas

stefan_Z
09.12.2007, 01:49
Also beim AT-Keyboard kann man nicht viel falsch machen...
Das Sample aus dem Handbuch sollte easy gehen.
5V stimmt, ich nehme mal an, dass deine Pins irgendwie nicht stimmen...

tiller
10.12.2007, 14:50
hab den quelltext leicht abgeändert (s.o.) und die tastatur direkt ans netzteil angeschlossen. in einem gewissen umfang scheint das ganze auch zu funktionieren, aber ich hab eine riesen verzögerung drin und das board spricht auch erst nach dem betätigen von mehreren tasten an. hast du 'ne ahnung, woran das liegen könnte?

tiller
11.12.2007, 21:39
hab den fehler gefunden, aus irgendeinem grund stimmt die belegung der leitungen der tastatur nicht mit der vorgesehenen überein, sprich data und clock waren vertauscht... keine ahnung warum.