PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SHIFTIN Probleme mit PS/2 Gerät... [gelöst]



stefan_Z
26.11.2007, 04:42
HI!

Ich habe hier ne PS/2 Tastatur an einen M16 angeklemmt.
Als Vorlage diente http://www.marjorie.de/ps2/ps2_protocol.htm.
Der Aufbau ist korrekt, der AVR kann die Beiden Leitungen mit den Transis auf GND ziehen und wenn ich beide Leitungen nur über die Pullups laufen lasse, dann sendet das Keyboard auch (habe LEDs in DATA/CLOCK eingeklemmt.).
- Taste drücken > beide flimmern kurz
- Taste halten > einmal flimmern, dann dauerndes Flimmern
- Die Break-Codes werden anscheinend auch gesendet.

Der AVR ist per RS232 mit dem Rechner verbunden, Übertragung geht auch.

Jetzt steht das Programm anscheinend beim SHIFTIN - und da kommt nix rein.
Die Option für externe Clock hab ich gesetzt, von 4 bis 7, bringt alles nix.

4 – MSB shifted in first when clock goes low with ext. clock
5 – MSB shifted in first when clock goes high with ext. clock
6 – LSB shifted in first when clock goes low with ext. clock
7 – LSB shifted in first when clock goes high with ext. clock
Der ganze Befehl lautet:

SHIFTIN PS2_Data , PS2_clock , Word_variable , <4-7> , 11 (bits)
danach kommt nur ein

PRINT "Ausgabe: " ; Word_variable
LOOP
Bis auf DELAY hab ich alle Optionen eingebaut, irgendwie weiß ich nicht mehr weiter... es kommt einfach nichts...

Achja.. Die PS/2 Tastatur-Funktion von Bascom kenne ich, die geht auch, aber ich will grundsätzlich mit der Tastatur (und morgen, wenn ich eine gekauft habe, einer Maus) sprechen.

stefan_Z
26.11.2007, 17:40
OK, mal wieder ein ziemlich dummer Fehler (bzw. eine Eigenart von Bascom):
Bei SHIFTIN muss man den Empfangspin über PINx.n definieren, NICHT über PORTx.n
Ich hatte oben im Source ein
PS2_Data Alias PortA.0 eingebaut, das muss dann natürlich
PS2_Data Alias PinA.0 sein, dann klapp der Empfang auch.

Dieses Verwirrspiel nervt mich jedes mal, vor allem weil man den Pin dann über das Alias nicht auf 0/1 stellen kann, das geht nur über eine Definition per PORTx.n

linux_80
26.11.2007, 18:09
Hallo,

das ist keine Eigenart von Bascom, sondern vom AVR so vorgegeben, da kann Bascom diesmal garnix dafür [-X