-         

Ergebnis 1 bis 3 von 3

Thema: ps2-tastatur am 644p....

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2010
    Beiträge
    167

    ps2-tastatur am 644p....

    Anzeige

    hallo, ich habe eine ps2-tastatur am 644p.
    funktioniert auch.

    wer kann mir das gedöns von den datazeilen mal erklären.
    ich kann es nicht enziffern, was das bedeuten kann.

    gruss


    Code:
    $regfile = "m644pdef.dat"
    $crystal = 16000000
    $baud = 19200
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Keyboard = Pind.2 , Data = Pind.4 , Keydata = Keydata
    
    Dim S As String * 12
    Dim B As Byte
    
    $serialinput = Kbdinput
    
    Print "hello"
    
    Do
    
    B = Getatkbd()
    
    If B > 0 Then
       Print B ; Chr(b)
    End If
    
    Loop
    
    End
    
    
    Kbdinput:
    
    $asm
    
    push r16           ; save used register
    push r25
    push r26
    push r27
    
    Kbdinput1:
    
    rCall _getatkbd   ; call the function
    
    tst r24           ; check for zero
    
    breq Kbdinput1     ; yes so try again
    
    pop r27           ; we got a valid key so restore registers
    pop r26
    pop r25
    pop r16
    
    $end Asm
    Return
    
    B = Getatkbd()
    
    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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2010
    Beiträge
    167
    noch ein programm von hier :
    http://www.rn-wissen.de/index.php/PS/2_-_Schnittstelle

    ich muss hier ja für den 644p das gimsk ersetzen mit eimsk ("push r0:in r0,eimskush r0:disable int1 ) und dieses ( pop r0:!out eimsk,r0op r0)

    es werden nicht die tastendrücke angegeben, die ich drücke sondern ganz andere, die vom zahlenwert her nicht annähernd hinkommen.

    woran liegt der fehler in diesem bascom-musterprogramm?

    gruss

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Ich betreibe eine PS/2-Tastatatur an einem Atmega8 in Bascom und muss
    ehrlich gesagt erwähnen, dass ich die Routine dafür auch im wesentlichen
    abgeschrieben habe, obwohl sie anders etwas aussieht, als bei Dir.
    Du und ich können erstmal sagen, dass es funktioniert. Das Wichtigste!
    Genau erschliesst sich mir die Funktion auch nicht, jedoch kann ich nur
    soviel sagen, dass der Tastaturcode GANZ ANDERS ist, als der ASC-Code,
    so dass eine Codewandlung gemacht werden muss, die dann in den
    DATA-Zeilen abgelegt ist. Hoffentlich sind meine Ausführungen richtig,
    ich denke hier gibts bestimmt Jemanden, der das gut ergänzen könnte.
    VG Micha

Berechtigungen

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