Ну вообщем принцип то прост
Как я уже говорил, мне нужна только одна скорость, это упрощает дело.
Сначала подобрал значение ШИМ для нужной скорости, затем замерил осцилографом длительность импульсов с энкодеров.
Теперь, собственно алгоритм: по внешнему прерыванию запускаю таймер, если импульс оказался длиннее расчётного, "приоткрываю" ШИМ. Причём чем длиннее импульс, тем больше значение ШИМ-а. Всё.
Расчёты не делал, всё методом тыка
Таким образом можно подобрать ОС и для других скоростей, если делать ступенчатое регулирование. Плавное - сложнее...