- LiFePO4 Speicher Test         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Tastatur (PS2) imitieren mit einem Mega8

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40

    Tastatur (PS2) imitieren mit einem Mega8

    Anzeige

    Praxistest und DIY Projekte
    Hallo Leute,

    Ich will mit einem ATMega8 eine PS2 Tastatur imitieren, damit mein Mega8 zb einen Text schreiben kann. Leider finde ich nur Informationen zum Anschluss einer Tastatur am Mega aber nicht zum imitieren.
    Das ganze dürfte eigentlich ja gar nicht so schwer sein, da Bascom offenstichtlich PS2 unterstützt.
    Hat von euch, irgendjemand schon einmal so etwas gemacht?

    Vielen Dank im voraus!
    Douser

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    SENDSCANKBD heißt der Befehl der das möglich macht. Du mußt beachten das Du mit den PS2 Scanncodes arbeiten mußt. Also um eine Tastenzeichen zu Senden mußt Du 3 Bytes Senden : 1 Byte Makecode und 2 Byte Breakcode.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    In Bascome Hilfe habe ich diesen Code gefunden, aber zur Zeile "Config Atemu =..." gib es die Fehlermeldung "Library file not found"
    Code:
    $lib "mcsbyteint.lbx"                                       ' use optional lib since we use only bytes
    
    
    'configure PS2 AT pins
    
    Enable Interrupts                                           ' you need to turn on interrupts yourself since an INT is used
    
    Config Atemu = Int1 , Data = Pind.3 , Clock = Pinb.0
    
    '                 ^------------------------ used interrupt
    
    '                              ^----------- pin connected to DATA
    
    '                                       ^-- pin connected to clock
    
    'Note that the DATA must be connected to the used interrupt pin
    
    
    
    
    
    
    
    Waitms 500                                                  ' optional delay
    
    
    
    
    'rcall _AT_KBD_INIT
    
    Print "Press t for test, and set focus to the editor window"
    
    Dim Key2 As Byte , Key As Byte
    
    Do
    
        Key2 = Waitkey()                                        ' get key from terminal
    
        Select Case Key2
    
          Case "t" :
    
          Waitms 1500
    
          Sendscankbd Mark                                      ' send a scan code
    
          Case Else
    
        End Select
    
    Loop
    
    Print Hex(key)
    
    
    
    
    Mark:                                                       ' send mark
    
    Data 12 , &H3A , &HF0 , &H3A , &H1C , &HF0 , &H1C , &H2D , &HF0 , &H2D , &H42 , &HF0 , &H42
    
    '    ^ send 12 bytes
    
    '           m                    a                   r                    k

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    The PS2 Keyboard and mouse emulator needs an additional commercial addon library.

    Also wirds doch nicht ganz so einfach wenn man sich diese LIB nicht noch dazukauft.

    http://www.mcselec.com/index.php?pag...pshop&Itemid=1

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    Weißt du vielleicht, wo man diese Lib noch bekommen kann?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    32
    Beiträge
    870
    Kaufen, anders wohl auf legalen Wege nicht
    MfG Christopher \/


  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Ja wenn Du das mit der Lib machen willst wirst Du die kaufen müssen.

    oder

    1. das Senden selber Programmieren ( das PS2-Protokoll ist nicht so schwer)
    2. in C bzw. Assembler wirds so was schon frei und fertig geben
    3. im Netz suchen ob es schon mal einer ohne die Lib mit Bascom geproggt hat


    MfG RoFo

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    Das problem beim selber schreiben ist nur, dass ich so etwas noch nie gemacht habe! Werde mich noch a bissal umsehen und versuchen, es selber zu Programmieren

    Danke für eure Unterstützung

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    Morgen,
    Wollte mir gerade bei MCS die Lib kaufen, aber die haben irgendwelche Probleme mit ihrem Server. Da kommt immer die Meldung "Server ist im daugenblick zu beschäftigt!" und das ganze seit gestern Abend.
    Jatzt muss ich das Protokoll doch selber schereiben, habe aber keine Ahnung davon. Meine Suche im Netz war auch nicht wirklich erfolgreich.
    Hoffe einer von euch kann mir dabei helfen.
    Ich will eigenlich nur dem PC die Standart Tasten sagen, die auf jeder Tastatur vorkommen.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    http://de.wikipedia.org/wiki/PS/2-Schnittstelle

    Die weiterführenden Links sind auch nicht schlecht


    EDIT:

    ich habe a mal schnell was zusammengeschrieben

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    Declare Sub Senden
    Declare Sub Senden0
    Declare Sub Senden1
    
    Dim X As Byte
    Dim Y As Byte
    Dim Z As Byte
    Dim Send As Byte
    Dim Parity As Byte
    
    Daten Alias Pina.0
    Datenport Alias Ddra.0
    Clock Alias Pina.1
    Clockport Alias Ddra.1
    
    For Y = 0 To 29                                             ' sendet "hallo AVR"
      Send = Lookup(y , Dat)
      Call Senden
    Next
    
    Do : Loop                                                   'endlosschleife
    
    '#########################  Unterprogramme #################################
    Senden:
    Do : Loop Until Clock = 1 And Daten = 1                     'warte bis PC empfangsbereit
    'Startbit (immer 0)
    Call Senden0
    '8 Datenbists
    For X = 0 To 7
      If Send.x = 0 Then                                        '0 Senden
        Call Senden0
      Else                                                      '1 Senden
        Call Senden1
      End If
    Next
    'parity
    If Parity.0 = 0 Then
      Call Senden0
    Else                                                        '1 Senden
      Call Senden1
    End If
    'Stopbit (immer 1)
    Call Senden1
    Parity = 0
    Return
    
    
    Senden0:                                                    'Sendet eine 0 über PS2
      Datenport = 1                                             'Daten auf Output
      Daten = 0                                                 'Daten auf low
      Clockport = 1                                             'Clock auf Output
      Clock = 0                                                 'Clock auf 0
      Waitus 30                                                 '30µS warten
      Clockport = 0                                             'Clock auf Input
      Waitus 5                                                  '5 µS warten
      Datenport = 0                                             'Daten auf Input
    Return
    
    Senden1:                                                    'Sendet eine 1 über PS2
      Clockport = 1                                             'Clock auf Output
      Clock = 0                                                 'Clock auf 0
      Waitus 30                                                 '30µS warten
      Clockport = 0                                             'Clock auf Input
      Incr Parity
    Return
    
    Dat:
    Data &H33 , &HF0 , &H33 , &H1C , &HF0 , &H1C , &H4B , &HF0
    Data &H4B , &H4B , &HF0 , &H4B , &H44 , &HF0 , &H44 , &H29
    Data &HF0 , &H29 , &H12 , &H1C , &HF0 , &H1C , &H2A , &HF0
    Data &H2A , &H2D , &HF0 , &H2D , &HF0 , &H12

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad