pavel1979 писал(а):вот это и не могу сообразить,а variable постоянно должен изменяться если ручка резистора не в среднем положении,то есть чуть повернул ручку и убрал руку с ручки,variable меняется с шагом пропорциональным повороту ручки,повернули ручку сильнее и отпустили руку-variable меняется быстрее,повернули ручку в среднее положение-variable не меняется,ручки с небольшой фиксацией в середине,используется в автомагнитолах старых на "балансе"
Повторюсь... Вижу только 2 выхода:
1. Разбить значение АЦП на 2 части и измерить время пребывания в каждой части, затем увеличивать степ от времени пребывания в этом диапазоне ЦАП
Пример: крутанули ручку вправо и не важно насколько, идет инкремент переменной с шагом 5, параллельно идет отсчет времени, если засиделись "тут" надолго, то другая переменная увеличивает степ в 2 раза);
или
2. Разбить значение АЦП не на 4, а на 5 или 10 частей и присваивать каждому значению (пределу) АЦП свой степ инкрементирования/декрементирования.
В таком случае не нужно подсчитывать время нахождения в данном пределе (значении ЦАП).
pavel1979 писал(а):...
использовать в данном случае энкодер не удобно-variable должен меняться от0 до 65535 с шагом 1,долго крутить
С энкодерами не работал.
Можно как-то умножить значение, как-то выставить множитель "поворота" ручки, чтобы долго не крутить
Кстати, можно попробовать многооборотный потенциометр

