Разное и полезное > Микроконтроллеры и их программирование

Четыре независимых генератора частот на разных ногах AVR

<< < (3/3)

lgedmitry:
Althair, Гоша, а MSP430F5529 не рассматривал, как вариант? Она и в виде готовой платки а-ля ардуина встречается ;-[

xar:

--- Цитата: Althair от 09 Ноября 2015, 18:26:33 ---Dir выставляется по факту, ему не надо раздавать пинки на каждый шаг. А вот step нужно дергать постоянно, причём разом на всех двиглах, и желательно одновременно.

--- Конец цитаты ---
то есть все таки одновременно или независимо? В этом вся муля. Путаешь синхронное с асинхронным. А так - заводим таймер на нужную частоту равную максимальной скорости подачи. Настраиваем прерывание на сравнение и переполнение. Сравненте вымтавляем в половину переполнения. По прерыванию сравнения выставляем все нужные ноги. По сбросу сбрасываем ноги. Я бы еще одно сравнение добавил для выставления направления чуть раньше шага.

Althair:
Не. Движки могут шагать с разной частотой. Скажем, на 100 шагов по Х, придётся 30 шагов по Y. Рулятся движки раздельно. Если бы движение было всегда прямолинейным - было бы проще, но траектория может быть любой. Отсюда и грабли.
Естественно, ИМПУЛЬСЫ на степ идут синхронно, но с разной частотой. Я уже почти решил проблему - каждый элемент в буфере кусается на вектора и понеслась. Типа на А шагов по Х приходится В шагов по Y, соответственно и счетчики инициализируются соответствующими аргументами.

xar:

--- Цитата: Althair от 09 Ноября 2015, 21:28:35 ---Не. Движки могут шагать с разной частотой. Скажем, на 100 шагов по Х, придётся 30 шагов по Y. Рулятся движки раздельно. Если бы движение было всегда прямолинейным - было бы проще, но траектория может быть любой. Отсюда и грабли.
Естественно, ИМПУЛЬСЫ на степ идут синхронно, но с разной частотой. Я уже почти решил проблему - каждый элемент в буфере кусается на вектора и понеслась. Типа на А шагов по Х приходится В шагов по Y, соответственно и счетчики инициализируются соответствующими аргументами.
--- Конец цитаты ---
дак я и говорю. в прерывании сравнения выставляешь только те ноги, которые нужны. точнее ноги тех каналов, которые должны сделать шаг. как именно вычислять - другой вопрос. я бы взял за базовую частоту скорость по вектору перемещения, а реальные скорости - проекции на оси x, y, z. получим синхронно и без лишних затрат.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии