Boвa (11.06.2018 16:54 - 17:26, просмотров: 112) ответил Скрипач на Вопрос знатокам алгоритмов :)
Можно использовать массив значений: номер элемента есть значение считанное с АЦП и огрубленное до N разрядов, в ячейке массива хранится битовое представление нажатия кнопок соответствующее огрубленному коду с АЦП. Перекодировка по скорости равна доступу к элементу массива. Недостаток метода жрет память если вам для чего-то понадобилось 64-128 значений с АЦП.
Другой вариант: массив хранит объекты упорядоченные по полю por в сторону возрастания
struct AA{
unsigned char por; //порог соответствующий максимальному напряжению на входе АЦП для этого состояния (и худших условий)
char keys; //код нажатия кнопок каждый бит отвечает своей кнопке 0 - нажата, 1 не нажата.
};
Для поиска состояния кнопок просматриваете массив с самого начала и находите элемент с полем por большим чем код с АЦП. Поле keys этого элемента даст комбинацию нажатых кнопок.