Добрый день. Протестировал блоки.
Блок Генератора работает хорошо. Выдает импульсы и не зависим от программного цикла. Жаль, что не возможно вернуть импульсы обратно в процессор, для использования их в программе ( как это возможно в блоке - 8мгц генератор меандра(CODE) из «БЛОКИ пользователей»). Не знаю, возможно ли это? А так, у Вас получился очень хороший, самостоятельный блок Генератора. Вполне может пригодиться.
Блок VO.3-CO: Частота, в режиме постоянного вращения, стала стабильной и одинаковой в обоих режимах.
Начиная со 120 мкс, стал запускаться только со второго или третьего сигнала в обоих режимах.В режиме Continuous: меняет направление оборотов влево сразу. В право только после остановки.
Слимпер писал(а):Вот тут я не согласен. Если даешь команду двигателю сделать 100 шагов по часовой стрелки, то пока он их не завершит, не должно быть реакции. Если надо развернутся, даёшь команду стоп (команда сделать 0 шагов), затем уже команду сделать столько то шагов против часовой стрелки.
Здесь я с Вами, совершенно согласен. Для того, чтобы не сжечь двигатель при резкой смене направления оборотов, обязательно нужно сделать
остановку для снятия встречных токов. И эту остановку всегда нужно программировать для всех драйверов с четырьмя входными импульсами управления.
В драйверах ТВ6600, A4988 с одним входным импульсом и им подобных, цикл остановки, для защиты двигателя уже установлен в программе драйвера изготовителем. И дублировать ее второй раз нет необходимости, затрачивая при этом ресурсы контроллера . К тому же, если мы прервем работу двигателя в процессе исполнения шагов, то мы будем терять остатки шагов в этих импульсах, накапливая огромную ошибку в процессе. Когда остановку делает драйвер, мы теряем всего 1/8 шага, если это будет делать блок, мы будем терять сотни шагов за каждый разворот. Если дадим завершить шаги, то узел, движимый этим двигателем, дойдя до точки разворота, не остановится вовремя и нарушит точность или разнесет весь узел.Поэтому, в данном блоке необходимо делать смену направления в процессе работы двигателя. А цикл остановки двигателя для защиты, сделает сам драйвер. Этот блок может работать с драйверами, управляемыми одним входным импульсом. Другие драйвера не могут с ним работать.