在S功能中等待时间

时间:2014-04-01 11:50:17

标签: matlab simulink s-function

我正在尝试使用S函数(C语言)在Simulink中创建一个闪烁过程,我需要发送一些帧,并且两个连续帧之间的时间应该比较200毫秒。我该如何实现这个等待时间?是否有可能实施它?

2 个答案:

答案 0 :(得分:0)

如果要每200ms更新一次,请将S-Function放入每200秒触发一次的子系统中。

答案 1 :(得分:0)

您可以在下面找到我在该功能中执行的步骤:

1.create first frame
2.send first frame
3.save the time when I send first frame
4.if(current_time - time_send_FF == x ms)
    5. calculate nr of consecutive frame
    6. for each consecutive frame
        7. create consecutive frame
        8. send consecutive frame
        9. save the time when I send consecutive frame 
        10. if(current_time - time_send_CF == x ms)
            11. jump to step 6
        else 
            12. check again if(current_time - time_send_CF == x ms)
   else
        13.check again  if(current_time - time_send_FF == x ms)

问题是我无法存储发送第一个/连续帧的时间,因为即使我使用全局DWOrk / RWork数组,它也在不断递增,当我尝试在current_time和time_send_FF之间进行区分时,结果总是0。 我可以使用时钟块作为输入来访问系统时间。我应该尝试什么其他方法...... 谢谢!