-         
+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Sync probleme Atmega8 und RS232 am PC

  1. #1
    Gast

    Sync probleme Atmega8 und RS232 am PC

    Hallo zusammen

    ich habe hier ein sehr spezielles problem, aber evtl. hat ja hier jemand einen Lösungsvorschlag für mich.

    Also 1. versuch ich mal zu erklären was ich vorhabe, und wie:

    Also ich habe hier einen Atmega8 an dem habe ich ein AT Keyboard angeschlossen, und benutze dafür die von Bascom mitgelieferte Library für das AT (Ps/2) Keyboard. Das ganze geht auch ganz gut, wenn ich auf der Tastatur etwas type erscheint das in einem Terminal programm ohne probleme auf dem pc.

    Hier mal der Code dazu:
    Code:
    $baud = 2400
    'The GetATKBD() function does not use an interrupt.
    'But it waits until a key was pressed!
    Config Keyboard = Pinb.1 , Data = Pind.3 , Keydata = Keydata
    
    'Dim some used variables
    Dim S As String * 500
    Dim B As Byte
    Dim C As String * 3
    
    'In this example we use SERIAL(COM) INPUT redirection
    $serialinput = Kbdinput
    
    'Show the program is running
    
    Do
      B = Getatkbd()
      If B > 0 Then
      C = Str(b)
      If B < 100 Then
      C = Format(c , "000")
      End If
      Print C
    
      End If
      Loop
    End
    Also wie man hier sehen kann sende ich den Ascii Code an den PC. Wenn der ascii Code kleiner als 100, also weniger als 3 stellen füge ich noch ne 0 dazu. Ich habe erst vor 2 wochen mit Basic angefangen, also kann das gut sein das das auch einfacher geht.

    Nun zum eigentlichen problem:

    Ich versuche das ganze auf dem PC mit einem Visual Basic programm auszulesen. Ich benutze dazu das MS Comm 6.0 Interface.

    Das MS Comm erstellt eine subroutine die immer ausgeführt wird, wenn "RTroshold" Daten empfangen wurden. Ich habe Rtreshold auf 3 gesetzt.

    Die subroutine wird auch immer ausgeführt, aber folgendes problem:

    bei der 1. Tase kommt z.b. 051 als ascii Code an,
    bei der 2. Taste ist es dann aber evtl schon " 51".

    Ich weiss das die Daten vom atmega8 korrekt an den PC gesendet werden, das sehe ich ja im Terminal Programm.

    Hat nun einer ne Idee wie ich das ganze synchronisieren kann??

    leider kann ich ja waitkey() im Bascom nicht benutzen, da ja das $serialinput = Kbdinput gesetzt ist, das den return key nicht versteht, dann dann könnte ich z.b. vor den ascii code nen buchstaben setzen (s051) und im Visual Basic schauen ob dieser vorne steht.

    Ich freue mich schon über jede Antwort

  2. #2
    Artikel ist von mir hab vergessen mich einzuloggen

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Hi

    Kann es sein, das du in deinem Proggi aufm PC die Baudrate falsch eingestellt hast?

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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