Использование функции constrain
- Войдите на сайт для отправки комментариев
Втр, 01/11/2016 - 09:23
Всех приветствую. У меня возник вопрос, по использованию функции constrain. Корректно ли так ? :
Setpoint_11 = Setpoint_1/(boost_tps_f-boost_tps_st)*(te = constrain(te,2,99)- boost_tps_st); // Boost at trottle
Или нужно прописывать constrain отдельной строкой ? :
te = constrain(te,2,99)- boost_tps_st); Setpoint_11 = Setpoint_1/(boost_tps_f-boost_tps_st)*(te - boost_tps_st); // Boost at trottle
Задача оганичить нижнее значение переменной "te", только для этой одной формулы. Для остальныйх параметров, в которых используется "tе", значения 0-99. Может быть есть более подходящий способ это реализовать ? На пример с помощю функции "max" ?
Всех приветствую. У меня возник вопрос, по использованию функции constrain. Корректно ли так ? :
Или нужно прописывать constrain отдельной строкой ? :
Лично я бы выбрал второй вариант в начальном сообщении темы, поскольку он читабельней и меньше возможностей ошибиться. С т.з. оптимальности, предполагаю, что скомпилированный код будет абсолютно одинаковый.
Разумеется - выбирать автору, не настаиваю.
Всех приветствую. У меня возник вопрос, по использованию функции constrain. Корректно ли так ? :
Или нужно прописывать constrain отдельной строкой ? :
Со скобками да, просто опечатка, когда сообщение писал. В коде компелятор бы такое не пропустил бы..)
Сейчас в коде используется первый вариант и врде бы все работает нормально..
А есть какой то способ, локально, в рамках одной формулы, ограничить значение переменной ? Кроме создания новой переменной..
x=constrain(x,min,max); и где тут новая переменная?
Тут ее нет, но создать можно.. Что то типа: et_2=constrain(et,min,max); И обьявить ее отдельно..
Так будет работать ? Функция constrain затронет только et_2, или et тоже ? Или так вообще делать нельзя ??
Функция constrain работает так: ты ей даешь 3 значения:x, min, max, а она тебе выдает одно, если х < min то это будет min, если x > max то это будет max, если min<=x<=max то это будет x. Никаких переменных она не трогает, переменные ты ей говоришь трогать сам когда какую либо переменную приравниваешь к этой функции
Функция constrain затронет только et_2, или et тоже ? Или так вообще делать нельзя ??
А Вы посмотрите на неё. Это даже не функция - это макрос, определённый в arduino.h вот так: