Извлечь число
- Войдите на сайт для отправки комментариев
Пнд, 06/02/2017 - 21:13
Прошу сильно не пинать в программирование не селен.
Вообшем имеется программа которая шлет в UART слово типа AB0123456789;
Как я понимаю АВ-идентификатор, 0123456789-переменная которую надо вытащить умножить на 4 и отправить на LCD, ;-конец слова.
Слово я получяю а вот как вытянуть число не могу понять
#include <LiquidCrystal.h> char ind; long out; LiquidCrystal lcd(12, 13, 7, 6, 5, 4); void setup() { lcd.begin(16, 1); Serial.begin(9600); } void loop() { while(Serial.available() > 0) { ind=Serial.read(); out=atoi(ind); lcd.print(out); } }
Сначала пропускаете "AB" и одновременно обнуляете out, заем в цикле out = out*10 + ind, пока не встретится ";".
Сначала пропускаете "AB"
Вот с этого места по подробнее пожалуйста. Я разобрался как убрать ";" в конце функцией replace() , а как убрать "AB"?
Если кроме этого ничего не принимаете, то можно цикл while заменить на:
https://www.arduino.cc/en/Serial/ParseInt
Всем откликнувшимся спасибо. задачу решил substring() c последующим toInt();