Здравствуйте, netch80, Вы писали:
N>Это дорогая операция; возможно, у тебя аналогично она делается в свободное время, или используется готовая таблица обратных чисел.
Чем медленнее вращается деталь, тем меньший step нужен, т.е. наоборот — надо умножать step на мгновенную угловую скорость.
Сама мгновенная скорость отслеживается через фазовую автоподстройку — а там только операции прибавить/отнять.
N>Особой ценности в выводе двух сигналов одновременно я не вижу, но предположим, что для какой-то аппаратуры это важно.
Ценность в том, что ты обслуживаешь процессы не последовательно, а параллельно. Пусть будет не 2, пусть будет 3 счётчика или больше.
В любом случае, доступ к ногам микросхемы осуществляется "за раз" — байтом, полусловом, словом. Т.е. у тебя есть принципиальная возможность в одной команде поменять состояние сразу нескольких выходных ног микросхемы.
N>В этой схеме нет возможности подстроиться под внешние влияния на ходу.
Конечно, есть. Более того, только в этой схеме и есть, потому что смотри рядом обсуждение:
http://www.rsdn.org/forum/flame.comp/6804012.1
Если ты работаешь по прерываниям, то у тебя будет запаздывание аж на целый раунд, т.е. не так-то просто будет оперативно осуществлять фазовую автоподстройку.
Просто, если у нас идёт управление, например, фрезерным станком, то там вообще ничего обсуждаемого не надо, бо по координатам Х и Y можно вычислять сигналы независимо и не торопясь, а потом подавать их одновременно, а потом вообще можно пойти чайку попить (по процессорному масштабу времени).
А если у нас происходит что-то вроде этого:
https://www.youtube.com/watch?v=h5KrxyyTKdw
То я показываю, как это надо примерно делать, чтобы получать нужную точность обработки на приемлемой скорости вращения детали.
=======
(на остальное позже)