Повторно использовать код C в simulink

Возможно ли, что я вызываю программу переменного тока из диаграммы потока состояний, затем копирую эту диаграмму, все еще в той же модели, и выполняю обе без какого-либо конфликта?

Например, программа на Си, подобная этой:

int var;              // var is global
int myfunction(int n)
{
  var = var + n;
  return var;
}

Я имею в виду, относиться к ним как к двум различным сущностям и не испортить глобальную переменную.

Кстати, также без переименования функции в исходном коде, у меня есть большая программа:)

1 ответ

Это больше проблема, связанная с Си. Если вы используете ту же функцию C, которая работает с глобальной переменной, то да, все вызовы этой функции будут работать с одной и той же переменной. Вместо этого вы можете сделать эту переменную локальной для каждого из вызывающих состояний Stateflow и затем передать ее в функцию C. Таким образом, вы не должны иметь конфликтов и иметь возможность повторно использовать свой код. Это также хороший выбор дизайна, поскольку в противном случае вы потенциально можете скрыть переменную состояния в функции, т.е. за пределами вашего конечного автомата.

Другие вопросы по тегам