Повторно использовать код C в simulink
Возможно ли, что я вызываю программу переменного тока из диаграммы потока состояний, затем копирую эту диаграмму, все еще в той же модели, и выполняю обе без какого-либо конфликта?
Например, программа на Си, подобная этой:
int var; // var is global
int myfunction(int n)
{
var = var + n;
return var;
}
Я имею в виду, относиться к ним как к двум различным сущностям и не испортить глобальную переменную.
Кстати, также без переименования функции в исходном коде, у меня есть большая программа:)
1 ответ
Это больше проблема, связанная с Си. Если вы используете ту же функцию C, которая работает с глобальной переменной, то да, все вызовы этой функции будут работать с одной и той же переменной. Вместо этого вы можете сделать эту переменную локальной для каждого из вызывающих состояний Stateflow и затем передать ее в функцию C. Таким образом, вы не должны иметь конфликтов и иметь возможность повторно использовать свой код. Это также хороший выбор дизайна, поскольку в противном случае вы потенциально можете скрыть переменную состояния в функции, т.е. за пределами вашего конечного автомата.