Хороший вопрос. Можно и его сделать WORD.
Тут нужно подумать.Например 200 кГц за 1 секунды.
Не хочется сейчас брать и менять на DWORD.
Одному нужно одно, а другому другое.
Скорее всего, само вычисление так и оставить WORD'ом, просто считать, что передаётся "ускорение, делённое на 4".
Т.е. значение accel_ramp=1 будет означать ускорение 4 Гц/сек2, значение accel_ramp=65535 будет означать 65535*4=262140 Гц/сек2
Вряд ли кто-то сильно заметит разницу между ускорением 100 и 101 Гц/сек2.
Но вот чтобы не приходилось в КДС программе "предварительно делить на 4", нужно сделать так, чтобы на КДС стороне это было REAL, а непосредственно перед передачей в PRU оно само делилось на что там нужно. Что-нибудь в таком духе.
Я думаю пока переделывать ничего не надо.
Не могу найти где в этой теме писалось о быстром ШИМ.
Какой вопрос?
Вот про ШИМ: https://hardella.com/docs/pru/examples/fast-pwm/
В Hardella есть блок и для дельта-сигма модуляции (про неё было тут: http://www.owen.ru/forum/showthread....l=1#post229447 )
Блок называется PDM_DW: https://hardella.com/docs/pru/standard-library/#pdm_dw
Есть потребность в быстром ШИМ. В связи с этим есть такие вопросы:
1) какие .exp файлы надо импортировать в проект CoDeSys;
2) как обратиться к ФБ ШИМ в программе CoDeSys.
При работе с ФБ ШД обращение такое:
SteppersConfig_Pru1MemoryTransfer(
STEPPER1_PRU1_stepper_accel_ramp := 50000,
STEPPER1_PRU1_stepper_decel_ramp := 50000,
STEPPER1_PRU1_stepper_max_speed := 10000,
STEPPER1_PRU1_stepper_min_speed := 0,
STEPPER1_PRU1_stepper_quantity := 1000,
STEPPER1_PRU1_stepper_enable := TRUE
);
А как будет в случае с ШИМ ? Там в теле будет всего 2 строчки. Нужно имя программы и что внутри.
Последний раз редактировалось Вольд; 03.02.2017 в 20:11.
Типа так ?
PWM_DWConfig_Pru0MemoryTransfer(
PWM_DW_PRU0_value := 100,
PWM_DW_PRU0_period := 200
);
value и period мерятся в мкс ?
Последний раз редактировалось Вольд; 03.02.2017 в 20:33.