我最初发布了this问题,这显然不符合我的客户规范。因此我正在重新定义问题:
为了更多地理解这个问题,可以使用原始帖子上的时序图。延迟器需要与平台无关。确切地说,我运行一个作业调度程序,显然我当前的delayer不会与它兼容。我坚持的是延迟器的“独立”位。我已经使用Probe
(采样时间探测)和Variable Integer Delay
块在SIMULINK中删除了延迟器。但是,在我们的验收阶段,我们意识到调度程序不符合这样的配置,需要更内在和基本的东西 - 比如在C / C ++应用程序中运行的while循环。
我能想到的解决方案如下:
定义名为tslc
的全局和静态时间片变量。基本上,这是调度程序运行的频率。单位可以在几秒钟内
定义具有以下主体的函数:
void hold_for_secs(float* tslc, float* _delay, float* _tmr, char* _flag) {
_delay[0] -= tslc[0];
if (_delay[0] < (float)(1e-5)) {
_flag[0] = '1';
} else {
_flag[0] = '0';
}
}
用户请原谅我糟糕的功能编码技巧,但我只是试图想出一个解决方案。如果有人帮我提出建议,我真的很感激!
计算平台 Windows 2000服务器
目标计算平台 嵌入式系统卡 - 类似于现代图形卡或声卡的一个PCI插槽。我们在测试平台上进行测试,最后在嵌入式系统卡上实现解决方案。