вы не покажите свой вариант интеллектуального изменения шага перестройки
Да не вопрос. Полный исходник в архиве. Но это синтезатор моего трансивера. Схему я выше выкладывал. Не знаю, кто как делает. У меня это так: таймер настроен на определенное время (уже не помню, несколько миллисекунд). Валкодер считает шаги в течение этого времени и число шагов сохраняется в буфере. Когда происходит прерывание по таймеру, смотрим, если в буфере не ноль (крутили валкодер), переходим к обработке. Частота, новая, равна прежней частоте плюс шаг, умноженный на квадрат содержания буфера валкодера. Таким образом, если за время заданное таймером вы накрутили валкодер на один шаг, частота увеличится также на один шаг, накрутили два шага, частота увеличится, или уменьшится на 4 шага. Таким образом, при шаге 10 герц и числе делений валкодера 60, я могу, крутнув валкодер (а он на подшипниках) перестроиться на несколько кгц.
Антидребезг, деления, реверс, интеллектуальный шаг - это все делают программисты.
Да, это так. Тем более, память контроллера заполнена меньше чем на четверть. Ну, еще добавится чуть чуть. Все равно места пустого много. Пока не знаю, как поделить импульсы валкодера. Скорее всего, опять же, будет какой-то буфер. В нем накапливается число, когда оно достигнет, скажем 4-х, в основной буфер добавляем единицу. По срабатыванию таймера, частота изменится на эту единицу, таким образом, число импульсов будет поделено на 4. Вроде все логично, но надо пробовать, может что неожиданное вылезет.