我有一个 simulink 模型,我使用 simulink coder 为通用实时目标生成代码。然后我将生成的文件(*.c 和 *.h)复制到我在 MPLAB 中的项目中。这里我有 main.c 文件,这里我使用 MdlStart() 来初始化模型一次,然后在无限循环中我使用 MdlOutputs() 和 MdlUpdate() 来运行模型。一切正常。
现在实际上我想加快模型的执行速度,因此我想将模型拆分为子系统并仅在需要时执行子系统(例如,我想每次执行一些子系统,而每隔几毫秒执行一些子系统每次)。我可以将模型拆分为子系统,并使每个子系统原子化,以便为每个子系统获得不同的功能。现在这些不同的子系统的函数是从 MdlOutputs() 和 MdlUpdate() 调用的。所以他们每次执行模型时都会执行。
实际上,我想在我的 MPLAB 项目中使用一些计时器,然后每隔 100 毫秒执行几个子系统。我也不想修改自动生成的 *.c 和 *.h 文件。
因此,不是每次都通过 MdlOutputs() 和 MdlUpdate() 执行这些子系统的功能,是否可以从我的 main.c 文件调用子系统的功能而不接触自动生成的 *.c 和 *.h 文件?
我希望我已经解释清楚了。
等待您的帮助。