- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 14

Thema: Byte über RS485 schlägt fehl

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    43
    Beiträge
    318
    habe meinen Code jetzt mal umgestrickt auf das Senden und Empfangen von Strings. Codes sehen folgendermaßen aus :

    Sender :
    Code:
    '------------------------ CPU Config -------------------------
    $regfile = "m8def.dat"
    $crystal = 1000000
    Baud = 1200
    '------------------------ Port Config --------------------------
    Config Portb = Output
    Config Portd.2 = Output
    '------------------------ Alias ----------------------------------
    Rs485 Alias Portd.2
    '-------------------------- Subs -------------------------------
    
    '--------------------------- RS485 -------------------------------
    Rs485 = 0
    Enable Interrupts
    '----------------------------- Dims ------------------------------
    Dim Wert As String * 4
    '---------------------------------- Mainprogramm ------------------
    Main:
    
    Rs485 = 1
    
             Print "test"
                      Do
             Loop Until Ucsra.txc = 1
             Set Ucsra.txc
    
    Rs485 = 0
    
    Wait 3
    
    Rs485 = 1
    
             Print "abcd"
                      Do
             Loop Until Ucsra.txc = 1
             Set Ucsra.txc
    
    Rs485 = 0
    
    Wait 3
    
    Goto Main
    und Empfänger :

    Code:
    ----------------- CPU Config ---------------------------
    $regfile = "m16def.dat"
    $crystal = 1000000
    $baud = 1200
    '--------------- Portdefinition ------------------------
    Config Porta = Output
    Config Portb = Output
    Config Portd.7 = Input
    Config Portd.6 = Input
    Config Portc = Output
    Config Portd.2 = Output
    '---------------------------------------- LCD ----------------------------------
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
    '----------------------------------- Timer --------------------
    Enable Interrupts
    '-------------- Alias -----------------------------------
    Led1 Alias Porta.7
    Led2 Alias Porta.6
    Led3 Alias Porta.5
    Led4 Alias Porta.4
    Backlight Alias Portb.4
    Rs485 Alias Portd.2
    '-------------------------- RS485 -----------------------
    Rs485 = 0
    On Urxc Onrxd
    Enable Urxc
    '-------------------- Dims ---------------------------
    Dim Wert As String * 4
    '------------------- Main -------------------------------
    Cls
    Cursor Off Noblink
    Locate 1 , 1
    Lcd "Testempfang"
    Backlight = 1
    Led2 = 1
    Led3 = 1
    Led4 = 1
    '-------------------- Hauptprogramm ---------------
    _start:
    
    Goto _start
    '---------- Einlesen ----------
    Onrxd:
    Input Wert
             Locate 2 , 1
             Lcd Wert
    Return
    Jetzt habe ich folgendes Phänomen :

    Wenn ich den Empfänger einschalte, dann zeigt er mit beim ersten empfang korrekt den Text "test" auf dem lcd an. Sendet der Sender dann abcd, kommt beim empfänger am lcd nur "#abc" und dann wieder "#tes". Also nur beim einschalten funktioniert es einwandfrei. Kann da was mit dem Buffer nicht stimmen ? Im Anhang sind noch zwei Bilder. Beim ersten klappt es nicht, da kommt ein wirres Zeichen und dann die restlichen 3 Buchstaben. Beim zweiten klappt es einwandfrei.

    mfg Kay
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lcd1_942.jpg   lcd2_985.jpg  

Berechtigungen

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

LiFePO4 Speicher Test