RS 485 SerCtrlXX

werner mehl
Benutzer
Avatar
Geschlecht:
Alter: 69
Beiträge: 49
Dabei seit: 02 / 2012
Betreff:

RS 485 SerCtrlXX

 · 
Gepostet: 01.03.2021 - 18:49 Uhr  ·  #1
Hallo Zusammen,
ich habe seit Jahren keine RS 485 Schnittstelle mehr in der Hand gehabt und habe jetzt wahrscheinlich ein Verständnisproblem mit der Richtungssteuerung.

Der Code sieht im Prinzip so aus.

Prinzipieller Code;

Device = xmega256A3U, VCC = 3.3;

import SysTick, SerPortE0, SerPortE1, SerPortF0, SerPortD0;

define
SysTick = 10; {msec}

// RS 485
SerPortD0 = 9600 , Stop1; {9600 Baud, 1Stopbit}
TxBufferD0 = 40 , iData; {8 Byte Buffer und Int}
RxBufferD0 = 40 , iData; {8 Byte Buffer und Int}
SerCtrlD0 = PortA, 2, Positive; // RS 485 Sende- Empfangsumschaltung

loop
Ser_EnableD0(True); // RS485 Treiber auf Senden umschalten
// mDelay(1); // 1 mS warten, nur zur Sicherheit
Write(SerOutD0, getWKS485); // Wolkensensor abfragen
// mdelay(1); // 1 mS warten, nur zur Sicherheit
Ser_EnableD0(False); // und RS485 Treiber wieder auf lesen umschalten
endloop

------------------
und erhalte die Fehlermeldung

Var or Symbol expected

Ich kenne dieses vorgehen aus einem älteren Mega128 Projekt, das problemlos funktioniert.
Die vorhandenen Beispiele sind auch nicht sehr ergiebig.
Es wäre nett, wenn mir jemand auf die Beine helfen könnte.
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1474
Dabei seit: 03 / 2005
Betreff:

Re: RS 485 SerCtrlXX

 · 
Gepostet: 01.03.2021 - 19:54 Uhr  ·  #2
What is the definition for getWKS485? Have you copied the function/constant over from your old project?
werner mehl
Benutzer
Avatar
Geschlecht:
Alter: 69
Beiträge: 49
Dabei seit: 02 / 2012
Betreff:

Re: RS 485 SerCtrlXX

 · 
Gepostet: 02.03.2021 - 08:44 Uhr  ·  #3
Entschuldigung, mein Fehler.
Der String ist als Konstante vordefiniert.
Hier sind noch weitere Infos.

Const:
CR : char = #13;
LF : char = #10;
Cz : Char = Char($1A);

getWKS485 : String = '?10U' + CR + LF;

Fehlerposition Cursor.

Ser_EnableD0(True); // RS485 Treiber auf Senden umschalten
----------------^
----------------|
---- Error pos here


ERROR: Var or symbol expected
ERROR: ';' expected
ERROR: Identifier expected
ERROR: error

Ich war eigentlich der Meinung dass ich beim Handling der Schnittstelle einen Fehler mache, weil die Fehlermeldung auf das Ser_Enable zeigt.
werner mehl
Benutzer
Avatar
Geschlecht:
Alter: 69
Beiträge: 49
Dabei seit: 02 / 2012
Betreff:

Re: RS 485 SerCtrlXX

 · 
Gepostet: 02.03.2021 - 10:39 Uhr  ·  #4
ich habe mir gerade eine Bitvariable zur RS485 Steuerung definiert mit der ich die Umschaltung manuell mache. Das funktioniert. Der ansonsten unveränderte Code wird auch problemlos compiliert.
rage
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Homepage: processanalytik.de
Beiträge: 237
Dabei seit: 02 / 2007
Betreff:

Re: RS 485 SerCtrlXX

 · 
Gepostet: 02.03.2021 - 14:12 Uhr  ·  #5
Hallo Werner,

da ich meist den Slip-Treiber benutze kenn ich mich damit nicht wirklich aus, der Slip-Trieber macht da sozusagen transparent. Aber im Handbuch steht auf Seite 75 eigentlichfür den XMEGA
Code

Procedure SetSerEnable(Usart : tUSARTenum; const ena : boolean);
und nicht Ser_Enable, die sind nur für die anderen Atmel-Typen.

LG Ralf
werner mehl
Benutzer
Avatar
Geschlecht:
Alter: 69
Beiträge: 49
Dabei seit: 02 / 2012
Betreff:

Re: RS 485 SerCtrlXX

 · 
Gepostet: 02.03.2021 - 14:39 Uhr  ·  #6
Hallo Ralf, besten Dank für den Einwurf!
Ich habe mich auf die Compilerhilfe verlassen, SetSerEnable finde ich in meiner Hilfe nicht. Version 5.10.10
Ich werde mir das Handbuch herunterladen und mal nachlesen.
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   110   124 · Page-Gen-Time: 0.030311s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI