Вопрос про изменение переменных из подпрограммы
- Войдите на сайт для отправки комментариев
Ср, 09/12/2015 - 16:35
Я начинающий ардуинец.
Возникла такая проблема = например у меня есть программа, в которой изпользуюстя некие переменные. и есть подпрограмма, которая после манипуляции меняет значение переменной. я хочу сделать так, чтобы при обращении к подпрограмме я задавал ту переменную, которую мне нужно менять, а она возвращала мне эту переменную уже измененной. сейчас в коде все функционирует через задание третей переменной, но мне это не нравится. вот пример
int x=1,y=2,z=0; ... void loop(); { ... z=x; change(z); x=z; ... z=y; change(z); y=z; ... } void change(int _z) { ...// здесь меняется значение (кнопочками) }
с таким вот z костылем все работает норм.
вот я бы хотел в основной проге задавать change(x); change(y); и чтобы после цикла change переменная возвращалась. Можно ли так сделать??? подскажите пожалуйста...
Есть такая штука - указатель...
Можно вместо void вернуть int.
Хотя задача слишком абстрактна, чтобы давать решения.
А как же http://arduino.ru/Reference/FunctionDeclaration ? Ознакомтесь - поможет.
P.S. Тут нет деления на функции и подпрограммы.
Mr.Privet, так они же у Вас все глобальные. Меняйте какую хотите и где хотите.
Кстати, тот скетч, что Вы показали - это плод Вашей фантазии? Реально Вы его не запускали и он не работает, правильно?
Работает, если внутри change() параметр _z написан с пропущенным подчерком, что "легко". :)
Евгений скетч был не рабочий, проведен для наглядности. рабочий кусок скетча нагроможден всякими дополнительными костылями, которые усложнили бы его понимание сдесь... Всем спасибо за советы, сделал при помощи Int как то так
В общем все ок, как я и хотел...
Он и сейчас не рабочий.
Что у вас ОК - непонятно.
там как бы троеточия намекают что он не завершенный... если уж хотите рабочий кусок пожалуйста:
эта функция при обращении на пример
x=int("temperature","min",-10,10,0.1)
вызывает экран изменения х со свойствами температура, минимальная, с макс и мин значениями -10, 10, с шагом 0.1
Еще прикручен титановый велсипед Клапауция, при зажатии на кнопочку значение ускоренно увеличивается. В общем все работает как я и хотел...
Да зачем мне Ваш "рабочий" да еще и "кусок".
Я пытался до Вас донести, что описаная выше функция
не может ничего вернуть по определению.
я думаю даже скомпилировать ее не получится.