Function Call
This example shows how to generate a function call by adding a subsystem, which implements the operations that you want.
C Construct
void add_function(void) { y1 = u1 + u2; }
Procedure
1. Open example model ex_function_call
.
The subsystem has two inputs and returns one output.
Selecting the Treat as atomic unit parameter enables parameters on the Code Generation tab. The Code Generation tab provides these customizations:
Function packaging set to
Nonreusable function
Function name options set to
User specified
Function name specified as
add_function
File name options set to
Use function name
2. To build the model and generate code, press Ctrl+B.
Results
In ex_function_call.c
, the function is called from 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' */ }
The function prototype is externally declared through the subsystem file, add_function.h
:
extern void add_function(void); #endif /* add_function_h_ */ /* * File trailer for generated code. * * [EOF] */
The function definition is in the subsystem file add_function.c
:
void add_function(void) { /* Outport: '<Root>/y1' incorporates: * Inport: '<Root>/u1' * Inport: '<Root>/u2' * Sum: '<S1>/Sum' */ rtY.y1 = u1 + u2; }