Serielle ?

  • 1
  • 2
  • 3
  • 4
  • Page 4 of 4
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Serielle ?

 · 
Posted: 28.08.2015 - 21:29  ·  #25
Ich bin immer noch ein Verfechter der Process-Lösung, weil du am Anfang ein eindeutig identifizierbares Zeichen hast (X, Y oder Z) und danach eine bekannte , immer gleiche Anzahl Bytes einlesen willst.

BTW wieso funktioniert das nicht ?
Code

Var
  Dummy        : Float;
  D1[@Dummy]   : Byte;
  D2[@Dummy+1] : Byte;
  D3[@Dummy+2] : Byte;
  D4[@Dummy+3] : Byte;

..... hat zumindest Frank gesagt. Ausprobiert hab ich es selber noch nicht.

Oder kann man anderst eine Float (nicht als Text) seriell senden ?

Grüssle
Harry
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: Serielle ?

 · 
Posted: 28.08.2015 - 21:46  ·  #26
Quote by Harry
Ich bin immer noch ein Verfechter der Process-Lösung

was soll das heisen ? AVRco Process?

Quote by Harry
weil du am Anfang ein eindeutig identifizierbares Zeichen hast (X, Y oder Z) und danach eine bekannte , immer gleiche Anzahl Bytes einlesen willst.

das ist SLIP mit einer konstanten Länge

Quote by Harry
BTW wieso funktioniert das nicht ?

wieso sollte das nicht funktionieren? Seriell geht alles von $00 bis $FF. Sogar mit SLIP.

Gunter
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Serielle ?

 · 
Posted: 28.08.2015 - 23:27  ·  #27
Hi Gunter,

ich meine so wie den GPS-Process aufgebaut.

Frank hat gesagt, daß das einen Compilerfehler gibt ;)

Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Serielle ?

 · 
Posted: 29.08.2015 - 07:20  ·  #28
Hallo Frank,

mein Fehler :'( :banghead: ich hab dir das auf die schnelle mit runden Klammern geschickt.

Gruss
Harry
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Serielle ?

 · 
Posted: 29.08.2015 - 08:05  ·  #29
Moin Harry, ich teste das naher noma, jetzt erstmal Kaffee :3some:


Gruß Frank
Harald_K
 
Avatar
 
Subject:

Re: Serielle ?

 · 
Posted: 29.08.2015 - 11:27  ·  #30
Quote by Gunter

Hi,
Quote by Harald_K
das prob, daß du für diese Timeoutzeit ( (1+8+2)*10/115200 Sekunden) die Kontrolle an die Empfangsroutine abgibst sobald 1 Zeichen da ist ....

nein, eben nicht. Das wird im Systick überwacht und belastet die CPU nur ganz minimal.

Gunter


Also zumindest bis zum Timeout ist die CPU erstmal "weg".

ok, die Timeoutzeit gilt pro Byte, nicht für den ganzen Block, von daher kann man das ggf. tolerieren, aber bei zeitkritischen Sachen kann das eng werden.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Serielle ?

 · 
Posted: 29.08.2015 - 16:41  ·  #31
Hi,
so wie Harry das angedeutet hat ist es am besten.
In einem Prozess ein WaitPipe(RxBufxxx);
Wenn nun Bytes reingekommen sind, richtige Anzahl etc
dann wird im Prozess die Verarbeitung gestartet.
Anschliessend Info an das main. Dazu sind Prozesse nun mal da.

rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Serielle ?

 · 
Posted: 29.08.2015 - 21:31  ·  #32
Moin, :-)
Genau Rolf, Harry hat mal wieder recht :-) xd

Sorry Harry das ich das jetzt erst Testen konnte, das was du mir da gezeigt hast.
Habe heute mal frei genommen :-) Und bin jetzt erst zu gekommen.

Funzt SUPER....

Auch das mit
Code

  Werk_X    : Float;
  PX1[@Werk_X]   : Byte;
  PX2[@Werk_X+1] : Byte;
  PX3[@Werk_X+2] : Byte;
  PX4[@Werk_X+3] : Byte;
//---------
  PX1:= MenueHeader[1];
  PX2:= MenueHeader[2];
  PX3:= MenueHeader[3];
  PX4:= MenueHeader[4];
  gDrawString(0, 10,2,2,TxtRot0,'X' + FloatToStr(Werk_X:8:3:'0'));






Gruß Frank
  • 1
  • 2
  • 3
  • 4
  • Page 4 of 4
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   137   151 · Page-Gen-Time: 0.028884s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI