-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Probleme mit PC-AT-Tastatur

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.10.2007
    Beiträge
    76

    Probleme mit PC-AT-Tastatur

    Anzeige

    Hallo Leute,

    mein Vorhaben besteht darin, eine konventionelle PC-Tastatur mit PS2-Anschluss an RN-Control 1.4 anzuschließen. Geschafft hatte ich das Ganze vor einiger Zeit schonmal, allerdings funktioniert nun irgendetwas nicht. Eigentlich passiert beim Betätigen einer Taste rein garnichts. Das Programm habe ich seit damals nicht verändert, schaut es euch mal an:

    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    $crystal = 16000000
    $baud = 9600
    
    Config Keyboard = Pind.4 , Data = Pind.2 , Keydata = Keydata
    Config Portc = Output
    Config Portd.7 = Output
    
    Dim Key As Byte
    Dim I As Byte
    
    For I = 0 To 7
       Portc.i = 1
    Next
    
    Portc.0 = 0
    Do
       Key = 0
       Key = Getatkbd();
       If Key = Asc( "a") Then
          Portc.1 = 0
          Sound Portd.7 , 400 , 300
          Waitms 10
          Portc.1 = 1
       End If
    Loop
    End
    
    Keydata:
    'normal keys lower case
    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
    
    '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
    Habe die Tastatur an eine externe 5V-Versorgung angeschlossen (ich ging davon aus, dass Rot und Schwarz die Versorgungsleitungen darstellen^^). Gelb und Weiß sind demnach Clock und Data, hab die beiden auch schon vertauscht, was ebenfalls keine Verbesserung mit sich bringt. Schalte ich den Saft ein, leuchten die drei LEDs der Tast. kurz auf. Danach passiert nichts mehr. Ich habe es auch schon mit einer anderen Tastatur (USB inkl. PS2-Adapter) versucht, das gleiche Spiel.

    Könnt ihr mir helfen? Weiß nicht weiter.

    Gruß, tiller

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    29.10.2007
    Beiträge
    76
    Die Tastatur, die ich eigentlich verwenden wollt (die mit USB und PS2-Adapter) habe ich mit Hilfe folgendes Schemas angeschlossen, ich gehe ma davon aus, dass die Belegung der Buchse dort richtig beschrieben ist.

    http://de.wikipedia.org/wiki/PS/2-Schnittstelle

    Sollte doch eigentlich funktionieren mit dem Adapter, oder? Muss ich da zusätzlich was beachten bei USB?

  3. #3
    Eigentlich sollte die Belegung auf Wikipedia stimmen. Ich habe meine PS/2 implementireung auch mit dieser Belegung realisiert. Versuch es einfach einmal ohne Adapter mit einer "echten" PS/2 Tastatur.

    Sendet die Tastatur eigentlich gar nicht oder kommen nur fehlerhafte daten an

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    29.10.2007
    Beiträge
    76
    Bei der ersten Tastatur handelt es sich um eine "echte" PS2-Version, die Alternative (die ich eigentlich verwenden wollte) hat einen USB-Stecker. Angeschlossen ist die erste. Keine Ahnung, ob sie irgendwelche Daten sendet. Ich glaube nicht, denn auch wenn der Quelltext
    Code:
    ...
    If Key <> 0 Then
    ...
    lautet, passiert absolut nichts.

    Hast du deine Tastatur ebenfalls so angeschlossen wie ich? Sprich an PortD.2 und PortD.4? Ist es egal, welcher Pin als Data und welcher als Clock verwendet wird?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    29.10.2007
    Beiträge
    76
    Wahrscheinlich habe ich einen Fehler bei der Verkabelung gemacht. Wie kann ich herausfinden, welche Ader was ist? Sprich Vcc, Ground, Data, Clock

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63
    Hallo,
    Schraub die Tastaur auf und schau auf die Platine .
    Ich hatte glück das es bei mir draufstand .

    Gruß Holger

  7. #7
    Ich hab keinen Atmel verwendet sondern einen PIC. Vom Funktionsprinzip sieht das folgen aus:

    Die Taktleitung liegt auf einen Pin der den externen Interrupt auslösen kann.
    Wenn die Tastatur Daten senden will geht die Tktleitung auf High und die ISR wird aufgerufen. Dann empfange ich über die Datenleitung, die eigentlich auf einem belibigen anderen Pin liegen kann, jeweils ein Byte und verarbeite dieses.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    29.10.2007
    Beiträge
    76
    auf der platine steht nichts drauf, aber ich bin mir mittlerweile recht sicher, die adern richtig zu deuten. auf der datenleitung liegen 4,89V an, auf clock 5,2V. beide brechen beim betätigen der tastatur etwas ein.
    vllt ist das keyboard einfach defekt, es handelt sich um ein wirklich uraltes cherry-gerät. werd mir wohl mal ne andere ps2-tast. zum testen besorgen. oder weiß vllt jemand noch einen rat?

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    29.10.2007
    Beiträge
    76
    auch die neue tastatur bringt keine verbesserung. da muss ja irgendwas faul sein mit der verkabelung. würde aber bedeuten, dass im Wiki was falsches steht.
    kann es nicht sein, dass ich bei der software was falsch mache oder am board irgendwas umgestellt werden muss? kann es vielleicht sein, dass portd.2 und 4 bereits verwendet werden? prinzipiell könnte ich das ganze doch mit 2 beliebigen digitalen I/Os versuchen, oder? irgendwo liegt der fehler, nur wo...?

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Tiller,

    als erstes würde ich mir mal nach getatkbd() erstmal anzeigen lassen was da abgeholt wurde. Entweder per Display oder serieller Schnittstelle. Vernünftige Ergebnisse erzielst du nur, wenn du einen Interrupt auslöst. Damit stellst du sicher, daß auch nur bei Tastendruck tatsächlich was geschieht.
    Wenn du möchtest, kannst du unter http://www.gerold-online.de/cms/index.php?id=136 dir das nötige rausziehen.

    MfG Günter

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •