Сообщение от
IVM
Владимир, а оформить этот код в виде функции, которая тупо переписывает регистры туда-сюда нельзя ?
Может получится добавить команду для сохранения и загрузки переменных, относящихся к ФБ в память.
Ну, что-нибудь в духе
Код:
stepper: PRU_STEPPER;
...
LOAD stepper, 1000; (* восстанавливаем состояние stepper из памяти по адресу 1000 *)
stepper.enable := enable1; (* передаём актуальные входные данные *)
stepper.quantity := quantity1;
stepper(); (* вызваем *)
STORE stepper1, 1000; (* сохраняем значение stepper в память по адресу 1000 *)
q1 := stepper.Q; (* читаем результат *)
state1 := stepper.state;
Переменные для обмена всё-равно придётся в двойном количестве создавать и вручную присваивать. Но LOAD/STORE сделать, наверное, можно.