Ragazzi mi servirebbe sapere come fare per leggere un intero inserito da tastiera sul monitor seriale.
So che legge caratteri ascii, quindi per una cifra basta fare "cifra-48" dove 48 è la posizione dello 0 nella tabella ascii.
Ma per un intero a tre cifre?
avevo pensato a questo sketch:
ma non mi convince moltissimo xD inoltre ho alcuni problemi, a volte mi da vari parametri sul monitor seriale anche se non scrivo niente, a volte infiniti valori.
Io vorrei che quando non scrivo niente non faccia nulla, che si fermi in attesa dell'input.
inseriscigli un istruzione di pausa che te lo fa funzionare solo quando riceve un click ad esempio nel c si può usare system(pause) e a quel punto il programma funziona quando riceve un impulso dalla tastiera del pulsante invio
long Stream::parseInt(char skipChar)
{
boolean isNegative = false;
long value = 0;
int c;
c = peekNextDigit();
// ignore non numeric leading characters
if(c < 0)
return 0; // zero returned if timeout
do{
if(c == skipChar)
; // ignore this charactor
else if(c == '-')
isNegative = true;
else if(c >= '0' && c <= '9') // is c a digit?
value = value * 10 + c - '0';
read(); // consume the character we got with peek
c = timedPeek();
}
while( (c >= '0' && c <= '9') || c == skipChar );
if(isNegative)
value = -value;
return value;
}
Puoi prendere spunto da questa per creartene una tua.