В этом примере показано, как сгенерировать вызов функции путем добавления подсистемы, которая реализует операции, которые вы хотите.
void add_function(void) { y1 = u1 + u2; }
1. Открытая модель ex_function_call
в качестве примера.
Подсистема имеет два входных параметров и возвращает один выходной параметр.
При выборе Treat, когда атомарный модульный параметр включает параметры на вкладке Code Generation. Вкладка Code Generation обеспечивает эти индивидуальные настройки:
Набор упаковки функции к Nonreusable function
Набор опций имени функции к User specified
Имя функции, заданное как add_function
Набор опций имени файла к Use function name
2. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.
В ex_function_call.c
, функция вызвана от ex_function_call_step
:
/* Model step function */ void ex_function_call_step(void) { /* Outputs for Atomic SubSystem: '<Root>/Add_Subsystem' */ add_function(); /* End of Outputs for SubSystem: '<Root>/Add_Subsystem' */ }
Прототип функции внешне объявляется через файл подсистемы, add_function.h
:
extern void add_function(void);
Функциональное определение находится в файле подсистемы add_function.c
:
void add_function(void) { /* Outport: '<Root>/y1' incorporates: * Inport: '<Root>/u1' * Inport: '<Root>/u2' * Sum: '<S1>/Sum' */ rtY.y1 = u1 + u2; }