Проверьте, находится ли аналоговое значение в пределах порогового значения

StackOverflow https://stackoverflow.com/questions/9016414

  •  14-11-2019
  •  | 
  •  

Вопрос

Я считываю аналоговое значение с вывода на микроконтроллере.Я хочу периодически проверять, изменилось ли значение больше, чем x.Здесь я использую abs() функция, но я хочу, чтобы она была простой.Вы не могли бы мне помочь?

int algVal= 0;
int oldVal = 0

while(1){

  algVal = getAlgVal();

  if(abs(algVal - oldVal) > x)
   {
    doStuff();
   }

  oldVal= algVal:

}
Это было полезно?

Решение

Это звучит как фантастический подход и, вероятно, было бы очень неплохо с точки зрения производительности во время выполнения, abs() для целых чисел это дешево.Если вы сомневаетесь, конечно, прочтите сгенерированную сборку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top