Разделяет число больше 9
- Войдите на сайт для отправки комментариев
Чт, 16/10/2014 - 15:20
Здравствуйте!
У меня возникла проблема когда я посылаю число до 10 все нормально выводит, но когда я посылаю 10 и более у меня число разбивается посимвольно, например ввожу 10 на выходе получаю 1 0 а мне нужно просто 10.
Вот код:
delay(200); if(Serial.available()>0) { port = Serial.read()- '0'; Serial.println(port); }
Пробывал еще так:
if(Serial.available()>0) { int s = Serial.read(); Serial.print(port); delay(200); if(s<9) { port = Serial.read()- '0'; Serial.println(port); }else{ port = port*10+( Serial.read()- '0'); Serial.println(port); }
Но это вообще какието левые цыфры выдает.
Вот этот код в отдельности
if(Serial.available()>0) { port = port*10+( Serial.read()- '0'); Serial.println(port); }
то он срабатывает нормально если ввели 10 или более, но если меньше то фигня получается какаето.
подскажите как это исправить ?
читать до появления перевода строки?
читать до появления перевода строки?
Можна до можна после
Кто-то из нас двоих тупит не по детски..
Кто-то из нас двоих тупит не по детски..
Я не понимаю Ваших комментариев. Вы спросили как пофиксить проблему, я написал что нужно читать до появления символа перевода строки.
Хотя может Вы в другом окне ноты изучаете и случайно окошком ошиблись...
Вроде так принимает
Правильный это подход или нет?
Я не понимаю Ваших комментариев. Вы спросили как пофиксить проблему, я написал что нужно читать до появления символа перевода строки.
Хотя может Вы в другом окне ноты изучаете и случайно окошком ошиблись...
Вы просто поставили знак вопроса в конце)
Есть еще метод parseint.
Луп считывает за проход один символ. Поэтому 10 приходит как 1 и 0. Если не "перевод строки" склеивайте их вместе.