Значение accel_ramp=0 рассматривается отдельно.
Вот фрагмент блока PRU_STEPPER:
Снимок экрана 2017-02-01 в 19.22.01.png
Т.е. при accel_ramp=0 блок ШД должен сразу переходить в состояние RUN и шпарить на максимальной скорости.
Другое дело, что при подобном использовании у тех кто тестировал наблюдались пропуски импульсов. С ускорением было лучше.
ramp порядка 65500 означает, что частота 65кГц наберётся за 1 секунду. Этого же наверняка должно хватать?
Последний раз редактировалось Владимир Ситников; 01.02.2017 в 19:27.
У вас
STEPPER2_Enc_PRU0_stepper_max_speed : DWORD;
STEPPER2_Enc_PRU0_stepper_min_speed : DWORD; (тут зачем DWORD ?)
а
STEPPER2_Enc_PRU0_stepper_accel_ramp : WORD;
STEPPER2_Enc_PRU0_stepper_decel_ramp : WORD;
Т.е. частоту можно задать ого го какую, а ускорение нет.
Последний раз редактировалось Вольд; 01.02.2017 в 19:43.
А нужно быстрее? Движок/система точно смогут?
За сколько нужен разгон до 200 кГц?
Там сейчас основное ограничение в том, что компилятор не умеет использовать память, а использует только регистры.
В результате, если все переменные объявлять как DWORD'ы, то может на остальную программу не хватить регистров (их там примерно 30 штук у каждого PRU ядра).
Еще интересный вопрос: что min_speed может быть не нулевым ?