Функция constrain()

arduino-logo

Описание функции constrain

Функция constrain «вписывает» значение переменной amt в указанный диапазон от low до high. Если значение переменной входит в диапазон, никаких изменений не происходит. Если значение amt меньше low, то amt присваивается значение low. Если значение amt больше high, то amt присваивается значение high. Сравнение можно проводить с любым типом данных.

Синтаксис

constrain(amt, low, high)

Параметры

  • amt — значение, которое нужно проверить.
  • low — нижний предел диапазона.
  • high — верхний предел диапазона.

Что возвращает

  • amp — если значение amt входит в диапазон от low до high;
  • low — если значение amt меньше значения low;
  • high — если значение amt больше значения high.

Пример использования функции constrain

Зададим диапазон от 50 до 200 и проверим, что произойдет при вызове функции constrain при значениях 5, 100 и 300.

void setup() {
  Serial.begin(9600);
}

void loop() {
  uint8_t  lowVal = 50;         // Минимальное значение диапазона
  uint8_t  highVal = 200;       // Максимальное значение диапазона
  Serial.print("Low Value:");
  Serial.println(lowVal);
  Serial.print("High Value:");
  Serial.println(highVal);

  uint16_t val = 5;             // Значение для сравнения
  Serial.print("Value before function 'constrain':");
  Serial.println(val);
  val = constrain(val, lowVal, highVal); // Поскольку значение val = 5, то после использования функции conastrain значение val = 50, минимальное значение диапазона
  Serial.print("Value after  function 'constrain':");
  Serial.println(val);
  
  val = 300;                    // Значение для сравнения
  Serial.print("Value before function 'constrain':");
  Serial.println(val);
  val = constrain(val, lowVal, highVal); // Поскольку значение val = 300, то после использования функции conastrain значение val = 200, максимальное значение диапазона
  Serial.print("Value after  function 'constrain':");
  Serial.println(val);

  val = 100;                    // Значение для сравнения
  Serial.print("Value before function 'constrain':");
  Serial.println(val);
  val = constrain(val, lowVal, highVal); // Поскольку значение val = 100, то после использования функции conastrain значение val = 100, входит в диапазон от 50 до 200
  Serial.print("Value after  function 'constrain':");
  Serial.println(val);

  Serial.println("---");
  delay(1000);
}
Функция constrain() в arduino
Выведем значения, которые получились при использовании функции constrain в монитор порта

Код функции constrain

(hardware/arduino/avr/cores/arduino/Arduino.h 1.8.10)

#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))

Загрузки

Где купить

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии