А какое ускорение нужно?
Может, вообще без него тогда?
Вид для печати
Значение accel_ramp=0 рассматривается отдельно.
Вот фрагмент блока PRU_STEPPER:
Вложение 29081
Т.е. при accel_ramp=0 блок ШД должен сразу переходить в состояние RUN и шпарить на максимальной скорости.
Другое дело, что при подобном использовании у тех кто тестировал наблюдались пропуски импульсов. С ускорением было лучше.
ramp порядка 65500 означает, что частота 65кГц наберётся за 1 секунду. Этого же наверняка должно хватать?
У вас
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;
Т.е. частоту можно задать ого го какую, а ускорение нет.
А нужно быстрее? Движок/система точно смогут?
За сколько нужен разгон до 200 кГц?
Там сейчас основное ограничение в том, что компилятор не умеет использовать память, а использует только регистры.
В результате, если все переменные объявлять как DWORD'ы, то может на остальную программу не хватить регистров (их там примерно 30 штук у каждого PRU ядра).
Еще интересный вопрос: что min_speed может быть не нулевым ?