[an error occurred while processing this directive]
|
Есть отсчёты с датчика с большОй частотой. С гораздо бОльшей, чем надо индикатору.
Есть "чистая" переменная, которая выводится на индикатор.
Есть "фильтровая" переменная (скорее всего один байт).
И есть два порога для фильтровой.
Алгоритм:
Сравниваем новый отсчёт с чистой. Если больше, инкремент фильтровой, если меньше - декремент.
Если фильтровая дошла до верхнего порога, то:
1. из фильтровой вычитаем константу,
2. и инкремент чистой.
То же самое и с нижним порогом (прибавляем и декремент).
Разумные значения константы от 1 и примерно до (верхний - нижний) / 2.
В принципе, могут быть разные константы для верхнего и нижнего.
Тут получается и фильтрация от помех (в том числе и когда в половине отсчётов "стрелка бьётся об ограничитель") и "ленивость" в переходе через разряд.
E-mail: info@telesys.ru