- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 33

Thema: Optimieren von UART-Komunikation, bitte um Meinungen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169

    Optimieren von UART-Komunikation, bitte um Meinungen

    Ich habe für mein aktuelles Projekt Datenpakete per UART zu empfangen.

    Vorgabe ist das empfangen von 16Byte für die weiterverarbeitung im Hauptprogramm.
    Aktuell ist es so gelöst, das die Pakete jeweils mit einem vorgegebenen Startzeichen beginnen müssen.
    Diese sind dann entweder bis 16Byte begrenzt oder werden durch ein vorgegebenes Endzeichen abgeschlossen.

    Ich möchte mir damit eine art Universelle Übertragung schaffen, die ich für weitere Projekte einfach anpassen kann.

    Der Code sieht so aus:
    Code:
    '-------------------------------------------------------------------------------
    'Variablen
    '-------------------------------------------------------------------------------
    Dim Temp_byte As Byte
    Dim Datenblock(16) As Byte
    Dim Indexposition As Byte
    Dim Startzeichen As String * 1
    Startzeichen = "{"
    Dim Endzeichen As String * 1
    Endzeichen = "}"
    Dim Datenblock_komplett As Bit
    Dim Datenblock_laenge As Byte
    Datenblock_laenge = 16
    
    Dim Datenblock_string As String * 16
    '-------------------------------------------------------------------------------
    'Hauptprogramm
    '-------------------------------------------------------------------------------
    
    Do
    
     If Datenblock_komplett = 1 Then
        For Indexposition = 1 To Datenblock_laenge Step 1
           Insertchar Datenblock_string , Indexposition , Datenblock(indexposition)
        Next
        Print Datenblock_string
        Datenblock_string = ""
        Datenblock_komplett = 0
     End If
    
    Loop
    
    End
    
    
    '-------------------------------------------------------------------------------
    'Interrupt
    '-------------------------------------------------------------------------------
    
    Serial0charmatch:
    
    While Ischarwaiting() = 1
       Temp_byte = Inkey()
       waitus 2000
       If Temp_byte = Asc(startzeichen) Then
          Indexposition = 0
          Datenblock_komplett = 0
       Elseif Temp_byte = Asc(endzeichen) Then
          Datenblock_komplett = 1
       Else
          Indexposition = Indexposition + 1
          Datenblock(indexposition) = Temp_byte
       End If
       If Indexposition = Datenblock_laenge Then
          Datenblock_komplett = 1
          Clear Serialin
       End If
    Wend
    
    If Indexposition < Datenblock_laenge Then
       Do
          Indexposition = Indexposition + 1
          Datenblock(indexposition) = 0
       Loop Until Indexposition = Datenblock_laenge
       Datenblock_komplett = 1
    End If
    
    Return
    Funktioniert soweit auch zufriedenstellend.
    Kurz noch Beispiele...
    Code:
    {1234567890123456}   ergibt   1234567890123456
    {123456   ergibt   123456
    {123456}   ergibt   123456
    123456   ergibt  "nix" (weil kein Startzeichen)
    Allerdings möchte ich gerne eure Meinung hören, inwieweit es da zu Problemem kommen kann,
    oder ob man das noch optimieren könnte (speziell wegen der Abarbeitungszeit im Interupt).

    Derzeit wird per Kabel übertragen... soll aber die nächsten Tage durch ein Funkmodul (APC220) ersetzt werden.

    P.S. ... sorry, das es nicht auskommentiert ist... sollte aber trotzdem leicht überschaubar sein.
    Geändert von JoeM1978 (03.03.2013 um 20:39 Uhr)
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

Ähnliche Themen

  1. Daten von Software UART nach Hardware UART weiterleiten
    Von kusli im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 06.10.2008, 22:24
  2. Anfängerprojekt - Bitte um Hilfe und Meinungen
    Von Al_Andaluz im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 22
    Letzter Beitrag: 20.06.2007, 11:27
  3. frequenzverhalten von mosfets optimieren...
    Von Bibiman im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 18.03.2007, 11:37
  4. Erster UART Versuch... schaut mal bitte kurz drüber...
    Von popi im Forum C - Programmierung (GCC u.a.)
    Antworten: 19
    Letzter Beitrag: 25.07.2006, 21:16
  5. BL-521 - Bluetooth RS232 Converter (Eure Meinungen Bitte !!)
    Von PabloEscoba im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 11.05.2006, 17:56

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test