RxBuff_E0 ?

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

Re: RxBuff_E0 ?

 · 
Posted: 18.04.2022 - 15:42  ·  #17
Hi Frank,

schon, aber mit SerInpBlockP_TO(UsartE0, @RxBuff_E0, 254, 10); liest der den Bufferinhalt immer ab RxBuff_E0[0] in deinen Buffer ein und überschreibt ihn quasi von Anfang an. Also hattest du noch nie das Problem, daß zu viele Daten rein gekommen sind. Du verschwendest eher Rechenzeit um den Define-Buffer in deinen einzulesen.

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

Re: RxBuff_E0 ?

 · 
Posted: 18.04.2022 - 18:49  ·  #18
Hallo Harry, also so wie ich das jetzt getestet habe komme ich so nicht an den
in Define erstellten RxBufferCDC ran.
Oder an das array unter System/variable _RXBUFFCDC array Byte


Das geht nicht
Code

for i:= 0 to _RXCOUNTCDC do
  str:= str + RxBufferCDC[i];  //Fehler aber Richtig wäre RxBufferCDC; 
endfor;



Selbst mit der var aus System komme ich so nicht weiter
Code

for i:= 0 to _RXCOUNTCDC do
  str:= str + _RXBUFFCDC[i];  //Fehler auch hier will _RXBufferCDC kein [i] haben
endfor;


Du siehst ich muss schon die Daten mit SerInp raus schaufeln
SerInpBlockP_TO(UsartCDC, @RxBuff_cdc, 511, 2); //jetzt auf 511 gesetzt


Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: RxBuff_E0 ?

 · 
Posted: 18.04.2022 - 19:08  ·  #19
Also wen ich das richtig verstanden habe .... sobald du aus dem RxBuffer was liest und keine neuen Daten empfangen werden, verringert sich natürlich auch automatisch (!) der Counter. Weil lesen = im Buffer löschen. Da der Buffer nur 254 Byte groß sein kann, kannst du auch nur max. 254 Byte mit einem Blockread lesen. Von dem _RxBuff?? würde ich die Finger lassen, da du hier in den Counter und eine sicher vorhandene, weitere Variable, die die Position des Ringspeichers beinhaltet, eingreifst. Das geht nicht gut!

Ich vermute mal, daß du GCode-Befehle einliest? Also Text? Wieso liest du dann nicht mit einem ReadLn bis zu einem Cr/Lf?

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

Re: RxBuff_E0 ?

 · 
Posted: 18.04.2022 - 19:25  ·  #20
Harry das ist schlecht, weil ich noch einige CMD als Byte mit sende

Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: RxBuff_E0 ?

 · 
Posted: 19.04.2022 - 12:33  ·  #21
Hi Frank,

gemischt Text/Byte-Daten? Ganz schlechte Idee ;)

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

Re: RxBuff_E0 ?

 · 
Posted: 19.04.2022 - 13:54  ·  #22
Genau Harry, deswegen sende ich alles in Byte in einen array.


Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: RxBuff_E0 ?

 · 
Posted: 19.04.2022 - 15:43  ·  #23
Aber du sendest deutlich mehr Text, als die paar Daten, die du als Byte benötigst? Dann wäre es doch umgekehrt schneller.

Harry
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 59
Posts: 957
Registered: 09 / 2007
Subject:

Re: RxBuff_E0 ?

 · 
Posted: 23.04.2022 - 20:30  ·  #24
Quote
SerOutBlock_P(UsartCDC, @RxBuff_E0, rxCnt);


Zumal USB keine mini Pakete mag.

Der Overhead ist immer erheblich, da kann man gleich 64 Bytes oder so senden.
Das geht schneller.
  • 1
  • 2
  • 3
  • Page 3 of 3
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: 15 · Cache Hits: 14   136   150 · Page-Gen-Time: 0.030748s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI