PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Config Serialin im Programm aufrufen?!



Fallback
12.07.2011, 10:15
Hi leute,

ich habe hier gerade ein com port problem, vielleicht könnt ihr mir helfen.

Also ich hab eine uart schnittstelle am controller und dahinter einen com muxer, den ich per digitalem output einen channel zuweisen kann (0 oder 1), somit kann ich mit einer schnittstelle zwei serielle geräte ansprechen.
Mit

Config Serialin = Buffered , Size = 20 , Bytematch = 13
trigger ich nun auf ein <CR> und lese den buffer aus.

Das andere gerät hat leider als abschlusszeichen die "16" und so müsste ich, wenn ich den kanal wechsele, auch den bytematch parameter ändern, doch wenn ich mitten im programm

Config Serialin = Buffered , Size = 20 , Bytematch = 16 schreibe, dann bekomme ich den kompilierfehler:
"CONST already specified [_RS232_BUFSIZE0]"

Gibt es eine möglichkeit die bytematch variable "im betrieb" auszuwechseln oder soetwas wie "reconfig"?

Danke für eine antwort, viele grüße,
Tobias

PicNick
12.07.2011, 11:55
Fürchte, das wird so nicht gehen. Bascom definiert nämlich aus "Bytematch = 13" ein symbol:

_CHECHCHAR0_CHAR 13
d.h. er baut das hard-coded in seiner serialin-funktion ein.

das kann er dann nicht mehr ändern. (der kompilierfehler hat andere Gründe)

Möglichkeiten: du müsstest den Bytematch "Zu Fuss" machen.

Ich persönlich würde mit einer User-Bascom-library die Ringbuffer-routine von Bascom überlagern und dort den Match-Char in einer Variablen ablegen. Da könnte man dann umschalten. Aber ich will dir nix einreden