-
        

Ergebnis 1 bis 3 von 3

Thema: Daten kommen verzögert vom Controller zurück zum PC

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.09.2009
    Beiträge
    164

    Daten kommen verzögert vom Controller zurück zum PC

    Anzeige

    Hallo zusammen,

    ich habe das Problem, dass die vom PC gesendeten Daten erst einige Sekunden verzögert vom Controller wieder zurück kommen.

    Ich kann mir das nicht erklären.

    Kann mir bitte jemand sagen, was in meinem Bascom-Programm falsch ist?

    Code:
    $prog , 255 , &B11011100 ,                                  '&B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus
    $regfile = "m2560def.dat"
    $hwstack = 82                                               '80
    $framesize = 68                                             ' 64
    $swstack = 68                                               '44
    $crystal = 16000000                                         'Quarzfrequenz
    Config Pind.5 = Output
    Led Alias Portd.5
    $baud = 19200
    
    
    Config Com1 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Config Com3 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Open "com1:" For Binary As #1                               'RS232
    Open "com3:" For Binary As #3                               'RS232
    
    Dim Eingabe As String * 25
    Dim Ausgabe As String * 25
    
    Dim String1 As String * 3
    Dim String2 As String * 2
    
    Dim I1 As Integer
    Dim I2 As Integer
    
    Dim Servo_x1_position As Integer
    Dim Servo_y1_position As Integer
    Dim Servo_z1_position As Integer
    
    Dim Servonummer As Byte
    Dim Servodevice As Byte
    Dim Servocommand As Byte
    Dim Servogeschwindigkeit As Byte
    
    
    Config Porth = Output
    Out1 Alias Porth.0
    Out2 Alias Porth.1
    Out3 Alias Porth.2
    Out4 Alias Porth.3
    Out5 Alias Porth.4
    Out6 Alias Porth.5
    Out7 Alias Porth.6
    Out8 Alias Porth.7
    
    Declare Sub Daten_vom_pc_empfangen()
    Declare Sub Daten_zum_pc_senden()
    
    Do
    
     Call Daten_vom_pc_empfangen()
     Call Daten_zum_pc_senden()
    
    Loop
    
    End
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub Daten_vom_pc_empfangen()
    
      Input #1 , Eingabe
    
      I1 = 1
      I2 = 4
    
      Do
    
        String1 = Mid(eingabe , I1 , 3)
        String2 = Mid(eingabe , I2 , 2)
    
        I1 = I1 + 5
        I2 = I2 + 5
    
        If String2 = "X1" Then
           Servo_x1_position = Val(string1)
        End If
    
        If String2 = "Y1" Then
           Servo_y1_position = Val(string1)
        End If
    
        If String2 = "Z2" Then
           Servo_z1_position = Val(string1)
        End If
    
        Ausgabe = Ausgabe + String1 + String2
    
      Loop Until I1 >= 50
    
     End Sub
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    Sub Daten_zum_pc_senden()
    
      Ausgabe = Ausgabe + Chr(13)
    
      Print #1 , Ausgabe
    
      Ausgabe = ""
    
    End Sub
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Vielen Dank im Voraus.

    Grüße

    datatom

  2. #2
    Hallo Dataom,

    probier mal statt des Hardware UARTs den Software UART zu benutzen, da du mit diesem leichter feststellen kannst zu welchem Zeitpunkt die Daten gesendet werden.
    Den ersten Kanal brauchst afaik bei Hardware UART nicht öffnen. Interessant wäre auch ob evtl. Interrupts die Ausgabe verzögern.

    Gruß Burga

    (EDIT: Typo)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Ich sehe da mehrere Fehlerquellen:
    -Das Programm, welches am PC die Daten verarbeitet.
    -Die "Loop Until I1 >= 50" hat noch keine 50 auf I1 ausgemacht, da nicht ausreichend Daten empfangen worden sind.
    Was passiert überhaupt, wenn nicht ausreichend Daten angekommen sind? Ich würde da erstmal auf ausreichend Daten hin prüfen, bevor ich ihn in den Loop "schicke".
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Ähnliche Themen

  1. PWM verzögert mit DSPIC30F4011 ausgeben?
    Von phil1403 im Forum PIC Controller
    Antworten: 0
    Letzter Beitrag: 11.10.2009, 14:30
  2. Daten via RS232 ins Eeprom und zurück
    Von fambi_mail im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 22.03.2006, 19:47
  3. Funkmodul - Daten kommen invertiert - wie "richtigdrehe
    Von m@rkus33 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 22.02.2006, 18:48
  4. UART Problem - keine Daten kommen an
    Von blu3 im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 12.02.2006, 20:18
  5. Daten zu Audio und zurück?
    Von ricoderrichter im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 13.03.2005, 11:54

Berechtigungen

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