-
        
+ Antworten
Ergebnis 1 bis 10 von 10

Thema: PS/2-Tastatur C-control/Basic

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674

    PS/2-Tastatur C-control/Basic

    Hallo Gemeinde,

    ich hatte vor eine normale PC-Tastatur an C-control anzuschließen um über Infrarot und nen Display, quasi nen Wireless-Chat zu bauen.

    Bisher habe ich schon die INfrarotübertragung, und alles nadere, was mir noch fehlt ist der Anschluss der Tastatur.
    Ich habe win wenig gegoogelt, und such schon mal im Forum geguckt, bin aber nicht wesentlich schlauer geworden, also wenn mir jemand helfen kann bitte melden.

    MFG Moritz

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    41
    Beiträge
    849
    Hallo RCO!

    Ich bin eben daran eine Maus zu einem Messystem für zwei Kettenantriebe zu modifizieren. Das ist im Grunde ein ähnliches Protokoll. Aber ohne Assembler geht es nicht wegen der hohen Geschwindigkeit.

    Das was wohl das wichtigste ist für das PS/2-Protokoll sind zwei digitale Ports die auch in der Richtung umschaltbar sein müssen. Das besitzt die C-Control ja von Haus aus weil es ein Motorola-Controler ist. Darüber hinaus benötigt man nur noch +5V und GND und man hat es hardwareseitig bereits angebunden.

    Das Problem ist jetzt das Protokoll einer PS/2-Tastatur. Ich selbst bin an einer Maus als Gebersystem und kann mache daher nicht viel mit der Tastatur herum. Aber das Prinzip des Datenprotokolls ist ähnlich und nur die genaue Befehls-Antwort-Sequenz ist etwas anders.

    Kennst du dich mit Assembler bei der C-Control aus? In den nächsten Tagen werde ich das mit der Maus am Laufen haben und auch paar Infos auf meine Webseite schreiben dazu. Hab erst gestern damit angefangen die Maus auseinanderzulöten und auf eine eigene kleine Platine zu packen. Das Assembler-Modul schreibe ich noch und geb dann mal Infos raus dazu. Die werden dir sicher helfen.

    Noch einige Links zum Thema und zum Protokoll:

    Zur PS/2-Maus:
    http://home.arcor.de/rieger_klaus/vtd/ps2.htmlhttp://govschl.ndsu.nodak.edu/~achap...ro/PS2/ps2.htm
    http://govschl.ndsu.nodak.edu/~achap...use/mouse.html
    http://www.synaptics.com/support/dev_support.cfm

    Zur PS/2-Tastatur:
    http://panda.cs.ndsu.nodak.edu/%7Eac...ro/PS2/ps2.htm
    http://panda.cs.ndsu.nodak.edu/%7Eac...tkeyboard.html

    Meine neue Platine im Moment:
    www.mds-5.de/temp/Mauselektronik.bmp
    www.mds-5.de/temp/GeberelektronikPS2Maus.jpg
    Grüsse Wolfgang

  3. #3
    Gast

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    @BlueNature:

    Danke erstmal für deine ausführliche Antwort.

    Nein, leider kenne ich mich überhaupt nicht mit Assembler aus.
    Auf der Seite, die Gast mir geschickt hat, war ich auch schon, dort gibt es eine Zip-Datei zum Download, darin enthalten ist eine BAS-Datei und eine ASM-Datei. Beim Übertragen verlangt der Compiler eine S19 datei (syscode "keyb.s19"), um genau zu sein.
    Muss ich die ASM-Datei in das S19 Format konvertieren, oder wie stell ich das an?
    Ein entsprechende S19-Datei kann ich nähmlich nirgends finden.

    Tut mir leid, wenn das alles etwas dumm und unerfahren klingt, aber ich bin erst seit ner kurzen zeit auf BASIC umgestiegen, aber leider noch nciht durchgestiegen.

    Also es wäre toll, wenn du mir nochmal helfen könntest.

    MFG MOritz

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    41
    Beiträge
    849
    Brauchst das Compiliert? Dann setz ich mich mal ran und mach dir ne S19-Datei daraus. Das Beispiel dort habe ich mir noch angesehen und sieht für deinen Fall recht passend aus. Mehr brauchst du ja nicht.

  6. #6
    Gast
    Ja, das wäre super, wie macht man daraus denn eine S19-Datei?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Sorry, ich war nicht eingeloggt.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    41
    Beiträge
    849
    Eigentlich recht simpel. Must nur den Quellcode (Mnemonics) in ein hexadezimales Format wandeln. Dazu nutzt man z.B. dem TASM,der kann das alles. Als Option die HC05 vorgeben das es auf den Prozessor passt und den Compiler starten.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Könntest du das bei der einen Datei mal in eine S19-Datei umwandeln, ich habs nämlich nciht so ganz kappiert, wäre echt super.

    Hier schonmal der ASM-Code

    Code:
    ; Scancode AT-Tastatur
    ; Author Martin Kaup (kaup@nettypes.de) 
    ; nettypes GmbH
    ; Datum 08.04.2002
    ; Code ist frei verfügbar, und dient als Beispiel
    ; Ein Scancode besteht aus 11 seriellen bits.
    ; 1. Startbit 2.-9. Datenbits, Paritybit und Stopbit
    ; Scancode (22) 00010110 zB. entspricht der Taste 1 (nicht in NUM-Block!)
    ; Es gibt Tasten (zB. Entf, Ende, Bild hoch etc., die senden zwei Codes. 1. den ESC-Code 224(dezimal) und dann den
    ; Tastencode 112(dezimal) bei der Taste Einfg.
    ; Die Tastatur übermittelt auch noch ob eine entsprechende Taste losgelassen wurde mit dem Code 240(dezimal).
    ; Bsp. Die Taste 1 (nicht in NUM-Block!)
    ; Ein einzelner Anschlag besteht also aus 33 Takten. Tastencode - Taste wurde losgelassen - Tastencode.
    ; Es sei denn, es wurde eine 'ESC'-Taste gedrückt - dann liegen uns 55 Takte vor.
    ; Also:       LS                   MS
    ; BitNr.:   1| 2| 3| 4| 5| 6| 7| 8| 9|10|11
    ; BitArt:   S|D0|D1|D2|D3|D4|D5|D6|D7| P| s    S=Startbit, Dn=Datenbits, P=Paritybit ODD, s=Stopbit
    ;           S| 0| 1| 1| 0| 1| 0| 0| 0| P| sS| 0| 0| 0| 0| 1| 1| 1| 1| P| sS| 0| 1| 1| 0| 1| 0| 0| 0| P| s
    ; Weitere Details bitte dem Code entnehmen, oder per E-Mail.
    ; Die Anschlüsse der Tastatur, Clock und Data liegen an 0,01 und 1,01 Data.
    ; Die Daten liegen mit fallender Flanke der Clock an. Beide Signale sind low-aktiv.
    ; Das Ergebnis des Scancode liegt in ERG (A4) vor.
    ; Ein Umsetzung der Scancodes in ASCII ist noch im Basic nötig.
    ; Scancode:ASCII:Zeichen
    ; 22:49:1 30:50:2 38:51:3 37:52:4 ...etc.
    ; Nächster Schritt wird sein, da es sich beim AT-Keyboard um ein bidirektionales Protokoll handelt, die LED's
    ; und weitere "Setup"-Funktionen (Delay,Repeat...) zu aktivieren.
    ; Der Code erhebt kein Anspruch auf Vollständigkeit oder Funktion. Mir ging es nur um die Möglichkeit eine preiswerte
    ; Lösung zur Ansteuerung von Relais mit einer Tastatur zu haben.
    ; Der Code als solcher lässt sich bestimmt noch Optimieren, aber ich hab's mit Assembler nicht so.
    ; Ich habe auf die 'ESC'-Sequenz der 'ESC'-Tasten verzichtet. Ich hoffe nur, dass es keine Normal-Codes mit gleichen
    ; Codes gibt, so dass es notwendig wird die ESC-Sequenzen mit Auzuwerten, denn der Code ist mit 80 Sys-Bytes
    ; noch entschieden zu gross.
    ; Viel Spass mit den Scancodes
    ; Martin Kaup im April 2002 :-}
    
    porta   equ   $00
    portb   equ   $01
    ddrb    equ   $05
    A1      equ   $A1
    A2      equ   $A2
    A3      equ   $A3
    ERG     equ   $A4
    
        org $101
             sei                             ; Interrupts Maskieren, damit wir die grüne LED behalten!
    ;        bclr 0,ddrb                     ; bit0 auf portb als Eingang (CLock)
    ;        bclr 1,ddrb                     ; bit1 auf portb als Eingang (Data)
    
             ldx #9                          ; 1. bit ist Startbit, es folgen 8 Datenbit
             jsr read1                       
             sta A1                          ; letzten 8bit in A1
    
             ldx #3                          ; 1. bit ist 2. bit ist Stopbit, 2. es folgen 8 Datenbit
             jsr read1
    
             ldx #8
             jsr read1
             sta A2
    
             ldx #3
             jsr read1
    
             ldx #8
             jsr read1
             sta A3
    
             lda #!240
             cmp A1
             beq SCistA2
             cmp A2
             beq SCistA3         
             lda #!224
             cmp A1
             beq SCistA2
             lda A1
             cmp A2
             beq SCistA2         
             rts
    SCistA2
             lda A2
             bra raus
    SCistA3
             lda A3
             bra raus
    raus
             sta ERG
             rts
    
    read1    brclr 0,portb,read1
    read2    brset 0,portb,read2
             brset 1,portb,w1              ; 8 mal Databit = Databyte
    w1       rora
             decx
             bne read1
             rts
    Wenn ich das richtig sehe, ist der erste Teil sowiso nciht entscheidend.

    MFG Moritz

  10. #10
    Gast
    HI,
    Ich bin anfänger mit der C-Control und möchte wissen, wie genau man asm-Dateien assembliert (mit Win XP - Ich vermute mal im DOS-Fenster, oder ?)

    PS: kennt jemahd einen Assembler für Windows?

    Danke und Gruss
    Clemens

+ Antworten

Berechtigungen

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