Разделяет число больше 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. Если не "перевод строки" склеивайте их вместе.