Serielle ?

  • 1
  • 2
  • 3
  • 4
  • Seite 4 von 4
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Serielle ?

 · 
Gepostet: 28.08.2015 - 21:29 Uhr  ·  #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
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Serielle ?

 · 
Gepostet: 28.08.2015 - 21:46 Uhr  ·  #26
Zitat geschrieben von Harry
Ich bin immer noch ein Verfechter der Process-Lösung

was soll das heisen ? AVRco Process?

Zitat geschrieben von 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

Zitat geschrieben von 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
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Serielle ?

 · 
Gepostet: 28.08.2015 - 23:27 Uhr  ·  #27
Hi Gunter,

ich meine so wie den GPS-Process aufgebaut.

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

Gruss
Harry
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Serielle ?

 · 
Gepostet: 29.08.2015 - 07:20 Uhr  ·  #28
Hallo Frank,

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

Gruss
Harry
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Serielle ?

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


Gruß Frank
Harald_K
 
Avatar
 
Betreff:

Re: Serielle ?

 · 
Gepostet: 29.08.2015 - 11:27 Uhr  ·  #30
Zitat geschrieben von Gunter

Hi,
Zitat geschrieben von 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
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Serielle ?

 · 
Gepostet: 29.08.2015 - 16:41 Uhr  ·  #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
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Serielle ?

 · 
Gepostet: 29.08.2015 - 21:31 Uhr  ·  #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
  • Seite 4 von 4
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   137   151 · Page-Gen-Time: 0.038708s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI