我有一个simulink模型,并使用simulink编码器为通用实时目标生成代码。 然后,我将生成的文件(* .c和* .h)复制到MPLAB中的项目中。 这里我有main.c文件,在这里我使用MdlStart()来初始化模型一次,然后在无限循环中使用MdlOutputs()和MdlUpdate()来运行模型。一切正常。将simulink生成的代码集成到项目中
现在实际上我想加快模型的执行速度,因此我想将我的模型分割成子系统并仅在需要时执行子系统(例如,我想每次都只执行一些子系统,每隔几毫秒而不是每次)。我可以将模型分解为子系统,并且使每个子系统都原子化,以便为每个子系统获得不同的功能。现在通过MdlOutputs()和MdlUpdate()调用这些不同的子系统函数。所以他们每次执行模型都会执行。
其实我想在我的MPLAB项目中使用一些定时器,然后执行几个子系统,让我们说每隔100ms。我也不想修改自动生成的* .c和* .h文件。
因此,不是每次都通过MdlOutputs()和MdlUpdate()来执行这些子系统的函数,是否可以从我的main.c文件中调用子系统的函数而不触及自动生成的* .c和* .h文件?
我希望我解释得很好。
等待你的帮助。
多速率是要走的路。生成的步进功能具有集成的计数器,可在每个步骤中调用正确的功能。 – pmb
非常感谢答案...我使用触发的子系统,它的工作原理... – Prashant