Ну я 99-ую страницу понимал так: если в момент движения (которое образовалось прошлым вызовом SPED) вызвать ещё раз SPED, то результирующий график будет такой.
У меня же вопрос был такой: можно ли в "управлятор быстрого выхода" загрузить последовательность команд "сначала делай SPED такой, а потом PLS2 такой".
Насколько я понял, такой опции нет. Т.е. выдача команд SPED/PLS2 происходит либо в основном цикле, либо по прерыванию, либо по таймеру.
Да, такого нет.загрузить последовательность команд
Владимир, смотрю ваш ФБ PWM_DW. У вас там Q - BOOL, POS - DWORD. Как возможна такая строка: Q := pos <= value; ?
Последний раз редактировалось Вольд; 04.03.2017 в 11:09.
Я так понимаю все у вас там в мкс мерится, если ФБ вызывается раз в микросекунду ?
Последний раз редактировалось Вольд; 04.03.2017 в 11:56.
Нет, измеряется в попугаях.
Вот блок, с помощью которого можно узнать количество выполненных процессором тактов: https://hardella.com/docs/pru/standa...u_current_time
В PRU нет операций деления/умножения, поэтому лучше в программе использовать "количество тактов процессора" (PRU это 200МГц, каждый такт -- 5нс), и переводить мкс в такты ещё при написании программы.
Единственное место, где в Hardella указываются микросекунды это PRU Configuration, но тот параметр как раз и превращается в "такты" на этапе компиляции проекта.
Ещё в упрощенном случае можно считать, что каждый цикл PRU выполняется через указанное в конфигурации время. Например указали цикл PRU в 1 мкс, вызываем pwm_dw в каждом цикле и тогда можно считать, что pwm_dw настраивается в мкс.
Последний раз редактировалось Владимир Ситников; 04.03.2017 в 11:26.
Тогда задам конкретный вопрос. Какие значения должны иметь period и value, если на выходе надо получить импульсы с периодом 10 мкс и скважностью 2 в ФБ PWM_DW и PDM_DW соответственно ? min cycle = 1 mcs.
Последний раз редактировалось Вольд; 04.03.2017 в 11:36.