Und wieder hilft die Hilfe in Bascom.
Such mal mit "ps2" da findest du gleich alles nötige auf einen haufen.
Dazu bei den Samples nach "ATKBD.bas" Ausschau halten
Hi,
Ich hab schon ne Weile darüber nachgedacht, aber ist es möglich eine normale PS\2 Tastatur über einen AVR auszulesen?
Ich habe schon danach gesucht und Pinbelegungen usw. gefunden, nur wie man es jetzt anschließt und vor allen Dingen wie man es programmiert (Bascom) weiß ich noch nicht so richtig
Hat jemand Erfahrungen damit und würde es ohne viel weitere Hardware funktionieren?
Mfg
Elektronik303
Und wieder hilft die Hilfe in Bascom.
Such mal mit "ps2" da findest du gleich alles nötige auf einen haufen.
Dazu bei den Samples nach "ATKBD.bas" Ausschau halten
Gruß
Ratber
Ich meine, dass dazu auch etwas in der BASCOM-Hilfe steht.
Durchsuche mal die "Config" Befehle.
Die Auswertung ist recht einfach.
In irgendeinem Buch zu den AVRs ist das auch nochmal erklärt. Ich weiß nur gerade nicht, welches es war.
jon
EDIT: *g* mal wieder zu lange zum Schreiben gebraucht *g*
EDIT²: Verwendest du überhaupt BASCOM??
Nice to be back after two years
www.roboterfreak.de
Joa, da hatte ich schon reingeschaut, also wenn ich das da richtig verstehe muss ich die Pins von der Tastatur nur mit dem Prozessor verbinden, nur das konnte ich nicht so richtig glauben ^^
Du hast es richtig verstanden. Ist ganz einfach!!
jon
Nice to be back after two years
www.roboterfreak.de
So, also angelötet hab ichs jetzt, mal gucken ob ichs hinkrieg
Was für einen µC verwendest du und an welche Pins hast du die Tastatur angeschlossen?
Ich habe bei mir einen Code gefunden. Den könnte ich noch schnell anpassen und dir dann schicken.
jon
Nice to be back after two years
www.roboterfreak.de
Ich habe den Code von Klaus Kühnel gefunden.
Man kann hier (unter Mikrocontroller --> AVR) einen ganzen Zip-Ordner (Programmbeispiele zum Buch) runterladen. Die Datei, die du brauchst heißt "ATKBD.BAS". Da brauchst du nichts extra zu kaufen.
jon
Nice to be back after two years
www.roboterfreak.de
Ok, also ich hab die Tastatur angeschlossen und ein wenig geraten ^^ Wegen den Leitungsfarben... Ich hab das Kabel abisoliert und mir gedacht Rot muss +5V sein, Weiß GND, dann warn da noch Grün und Blau, einer von beiden musste Clock sein, nur welcher? Dann hab ich mir gedacht dass ich ja zwei mal INT hab (INT0 und INT1) einfach den Grünen an INT0(PD2) und den Blaun an INT1(PD3). Dann hab ich in dem Code die ganzen "print" mit "lcd" ausgewechselt (hab ein 16*2 Display dran). Das hab ich übetragen aber geklappt hats nicht... Dann hab ich im Code das PD2 und PD3 getauscht... klappt aber auch nicht... Hier mal mein Momentaner Code:
Woran liegts???Code:$lib "lcd4busy.lbx" $regfile = "attiny2313.dat" ' ATmega8 $crystal = 4000000 ' für STK500 $baud = 19200 Config Lcd = 16 * 2 'wir verwenden ein 4 x 20 Zeichen Display Const _lcdport = Portb Const _lcdddr = Ddrb Const _lcdin = Pinb Const _lcd_e = 1 Const _lcd_rw = 2 Const _lcd_rs = 3 Waitms 100 Initlcd Cls Cursor Off Noblink Config Keyboard = Pind.3 , Data = Pind.2 , Keydata = Keydata Dim B As Byte Lcd "Eingabetest" Do B = Getatkbd() ' Abfrage der Tastatur If B > 0 Then Lcd B End If Loop End Keydata: ' Shift-Taste nicht gedrückt Data 0 , 0 , 0 , 0 , 0 , 0 , 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 ' Shift-Taste gedrückt 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
Raten ist nicht nötig.
Schau mal in eines der vielen Kabel-Faq's im Web da findest du die Belegung.
Ein Multimetr oder ein einfacher Durchgangsprüfer hilft beim Selektieren.
Gruß
Ratber
Lesezeichen