-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Tastatur

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178

    Tastatur

    Anzeige

    hey leute,

    habe meinem AVR (ATMega nun eine Tastatur spendiert..

    funktioniert auch ziemlich gut mit dem einlesen der ersten 127 Tasten!

    was mich stört ist das die Tastatur "amerikanischer Standard" hat.
    das heißt:
    es ist die z und die y Taste vertauscht usw...

    gibt es eine Möglichkeit dies über einen Bascom Befehl auf "deutsche Art und Weise" umzustellen?

    benutze den einfachen Code:
    Code:
    Config Keyboard = Pinc.4 , Data = Pinc.5 , Keydata = Keydata
    
    Dim B As Byte
    
    Do
      T = Getatkbd()                                          
          If T > 0 Then Print T ; Chr(t)
      End If
    Loop
    danke schonmal für eure Antwort

    Zapo.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.09.2007
    Beiträge
    162
    Wenn Du nicht in die Biblotheks-Routinen eingreifen willst oder kannst, dann kapsele die Routine GetAtKBD doch einfach durch eine weitere eigene (ein "Wrapper"), in der Du diese (und andere) Vertauschungen vornimmst...

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Man kann die Keydata umschreiben.. irgendwo hier oder bei MCS im Forum wird das auch erklärt. So aus dem Kopf weiß ichs aber nicht.
    Damit kann man danna uch die F-Tasten und ähnliches belegen...

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178
    also ganz unten im Quellcode habe ich folgendes angegeben:

    Code:
    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
    weiß leider nicht wie ich das deuten soll, kann!

    wenn mir vielleicht jemand sagen würde vertausche einfach diesen und diesen Wert und dann passt das wäre das für mich ebenfalls ausreichend!

    Zapo.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2007
    Ort
    Bodenseeregion
    Alter
    27
    Beiträge
    135
    Also wenn ich das nicht komplett falsche Verstanden haben ist das eine ASCII Tabelle.
    Das wäre ein Versuch wert.
    Code:
    89 = Y
    121 = y
    
    und 
    
    90 = Z
    122 = z
    Versuchs mal indem du diese Zahlen einfach austauscht. Also 89 mit 90 tauschen und 121 mit 122 tauschen.

    Könnte funktionieren

    Gruß Robin

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178
    ja, so hats funktioniert!!!

    verstehe die Tabelle trotzdem noch nicht ganz...
    in jeder Zeile stehen 16 Werte - also Hexadezimal nummeriert - 00..F
    die Werte selbst sind in Dezimalschreibweise oder aber in Hex anzugeben und durch ein komma zu trennen.

    soweit mein Durchblick.!!!!!!!!

    wenn ich nun weitere Taste hinzufügen möchte müsste ich ja wissen an welche stelle ich den Dezimalwert schreiben soll um das gewünschte Zeichen zu erhalten... also gibts wohl noch eine Tabelle in der stehen muss welche Position welchem Taste zuzuordnen ist....

    oder?

    wie und wo komme ich da ran?

    Zapo.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Schau mal in der Bascom Hilfe nach der entsprechenden Tabelle - da sind die Make- und Break-Codes drin. Damit ergibt sich das dann...

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178
    sorry stefan_Z ... unter was soll ich da explizit suchen? - Bascom hilfe ist groß!
    und gesucht aber nix gefunden habe ich schon....

    Zapo.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    27.10.2006
    Ort
    Dortmund
    Beiträge
    79
    unter getatkbd und sendscankbd steht was , aber ich hab das immernoch nicht so ganz geschnallt, wofür steht das Make und wofür das Break ?

    Grüße

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    27.10.2006
    Ort
    Dortmund
    Beiträge
    79
    Okay, so wie oben beschrieben gehts halt einwandfrei.
    Da ich per USB am Rechner angeschlossen bin sind die Print-Anweisungen als " print #4, chr(b) " also umändern in " print chr(b) "

    Bei mir funktioniert das kleine Keypad am Atmel RN2650 tadellos.

    Grüße.

    Code:
    Config Keyboard = Pind.2 , Data = Pind.4 , Keydata = Keydata       'Keyboard = Clock
    
    Dim B As Byte
    
    Print #4 , "Eingabetest von PC-AT-Tastatur"
    
    Do
      B = Getatkbd()                        ' Abfrage der Tastatur
      If B > 0 Then
          Print #4 , Chr(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

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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