Ho allargato a 128 il buffer descritto da Leo, e poi anche a 256
#if (RAMEND < 1000)
#define SERIAL_BUFFER_SIZE 16
#else
#define SERIAL_BUFFER_SIZE 256 // Originalmente 64
#endif
Il risultato e' ottimo, con 128 sono ritornato alle vecchie prestazioni e con 256 le ho superate.
Domande:
0: Parliamo di 256Byte o bit ?
1: Quale e' la contropartita ? Sono 256Byte/bit fermi, sempre allocati giusto, quindi tolti alla Ram ?, Ci sono altri problemi ?
2: Quell #if (RAMEND < 1000) che significa ? Forse che se la Ram scende sotto i 1000 Byte (oppure bit) il buffer si autoriduce ?
3: Astro io non ho usato nessun delay, la velocita' di lettura e svuotamento buffer e' al massimo, c'e' un solo delay di un millesimo di secondo nel codice proprio della lettura seriale
while (Serial.available())
{
delay(1);
if (Serial.available() >0)
{
char c = Serial.read();
Posso provare a toglierlo o non serve ?
Tu hai altre idee che possano non farmi modificare manulmente il buffer ?