在Stateflow中调用C函数

在Stateflow中调用自己定义的C函数

基于MATLAB 2017b

  • 示例如下图所示,Stateflow的输入为a和b,输出为b;在Stateflow内部,直接调用自己定义的C函数add。
    SimulinkDemo4IntegrateC
    StateflowDemo4IntegrateC
  • 为实现上述功能,需要对Simulink模型进行配置。通过“Simulation-Model Configuration Parameters”打开配置窗口,点击左侧的“Simulation Target”,对如下图所示的窗口进行配置
    在这里插入图片描述
  • 关于Inset custom C code in generated的填写。
    1、需要说明的是,与其他Simulink模块不同,在运行时模型中的Stateflow会先生成代码。
    2、如果希望在Stateflow生成的代码中插入一段代码,则需要在 Inset custom C code in generated 下面的文本框中输入;所输入的代码,将出现在Stateflow生成代码的头部。
    3、比如,如果希望实现示例中的功能,需要如下图所示,在Source file文本框中加入add函数的定义,并在Header file中加入对add函数的声明。
    在这里插入图片描述
    在这里插入图片描述
  • 关于Additional build information的填写。
           如果希望调用已经存在C文件,需要填写Additional build information下的文本框。
           比如,对add函数的定义,存在于myfunc.c文件中;文件路径为”G:\Learning_ws“。
           必须注意的是,在 Inset custom C code in generated 的Header file文本框中,必须加入头文件myfunc.h,该文件中拥有对函数add的声明。
// myfunc.h
int add(int a, int b);
// myfunc.c文件
int add(int a, int b)
{
    return a+b;
}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Aiyanghong/article/details/88949748