- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Problem mit RS232-Empfang

  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622

    Problem mit RS232-Empfang

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich sende mit diesem Programm den String "F99223344567Y":

    Code:
    $regfile "m32def.dat"
    $framesize = 42
    $swstack = 62
    $hwstack = 62
    $crystal = 16000000
    $baud = 9600
    
    Enable Interrupts
    Config Serialout = Buffered , Size = 13
    
    Do
    Print "F99223344567Y"
    Loop
    Empfangen wird aber das, was zwischen dem "-" steht:
    F-
    -99-
    -22-
    -33-
    -44-
    -56-
    -7Y-
    -
    -
    -F9-
    -92-
    -23-
    -34-
    -45-
    -67-
    -Y
    -

    Das ist das Programm:

    Code:
    $regfile = "m2560def.dat"
    $hwstack = 82                                               
    $framesize = 68                                             
    $swstack = 68                                               
    $baud = 9600
    $crystal = 16000000
    
    Config Com3 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Open "com3:" For Binary As #3                               'Uplink
    Config Serialin3 = Buffered , Size = 13 
    
    Dim Zeichen As String * 1                                   
    Dim Empfang As String * 13                                  
    Dim Count As Byte
    
    Do
    
    If Ischarwaiting(#3) = 1 Then
       Empfang = ""
       Count = 0
       For Count = 1 To 13
          Zeichen = Inkey(#3)
          Empfang = Empfang + Zeichen
       Next
       Print "-" ; Empfang ; "-"
    End If
    Loop

    Was mache ich da schon wieder falsch?
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,

    wahrscheinlich ist die "for count ... next" Schleife zu schnell - Inkey wird möglicherweise öfter mal kein Zeichen bekommen.

    Versuch statt Inkey mal Waitkey. Das wartet immer laut BASCOM-HELP bis wirklich ein Zeichen da ist.

    Also:
    Code:
       For Count = 1 To 13
           Zeichen = Waitkey(#3)
           Empfang = Empfang + Zeichen
        Next
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Hi,

    nein, leider genauso schlecht.
    Folgendes Empfangsprogramm funktioniert:
    Code:
    Do
    If Ischarwaiting(#3) = 1 Then
       Input #3 , Daten
       Print #4 , Daten
    End If
    
    'Waitms 100
    
    Loop
    Ausgabe ist dann F99223344567Y.
    Wenn ich ein bel. Waitms (z.B. 100) hinzufüge, bekomme ich nur noch F9.

    Warum? Es muss doch möglich sein, zu bel. Zeitpunkten den gesamten Puffer auszulesen.
    Ich benötige nicht alle empfangenen Strings, ab und zu möchte ich aber einen komplett auslesen, egal wie
    lang das gesamte Programm ist.
    Kann mir jemand helfen?
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Warum "For Binary"? Probiere mal ein Anderes Datenformat.....

    Gruß Richard

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,
    wüßte auch nicht, warum das mit waitkey nicht funktionieren sollte. Man darf bei

    Print "F99223344567Y"

    nicht vergessen, das da immer noch ein Carrige Return , Line Feed angehangen wird, die auch wieder als Zeichen behandelt werden.

    Mit Input geht's, da Input auf dieses CR LF wartet.

    Print "F99223344567Y" ; (Mit Semikolon am Ende kann man CR LF unterdrücken.)

    Gruß
    Searcher
    Geändert von Searcher (24.10.2011 um 18:35 Uhr) Grund: meinte Input statt Inkey
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Könnte hier noch was sein?

    Open "com3:" For Binary As #3 'Uplink
    Config Serialin3 = Buffered , Size = 13

    Die com Portnummern beginnen mit 1 an zu zählen. Config Serialin3 bezieht sich auf com4. Config Serialin (ohne Nummer) würde com1 sein.

    PS: Config Serialin würd ich vor Open ausführen.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Zitat Zitat von Searcher Beitrag anzeigen
    Könnte hier noch was sein?

    Open "com3:" For Binary As #3 'Uplink
    Config Serialin3 = Buffered , Size = 13

    Die com Portnummern beginnen mit 1 an zu zählen. Config Serialin3 bezieht sich auf com4. Config Serialin (ohne Nummer) würde com1 sein.
    Searcher, für heute bist du mein Held! Mit "Config Serialin2" geht es.
    Nur sehen, ob es morgen noch funzt...
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

Ähnliche Themen

  1. RFM12 868Mhz Problem beim Empfang
    Von bytie82 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 21.11.2010, 21:50
  2. Probleme mit RS232 und dem Empfang
    Von BlaueLed im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 14.01.2010, 19:35
  3. Problem mit Serial Port (empfang)
    Von Tredory im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 07.03.2009, 17:23
  4. RS232 Empfang UND Versand auf einem Port?
    Von RHS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 22.01.2007, 18:02
  5. Antworten: 16
    Letzter Beitrag: 03.01.2006, 17:36

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad