0

问题

我最初发布了这个问题,这显然不符合我的客户规范。因此,我正在重新定义问题:

为了更深入地理解这个问题,可以使用原帖上的时序图。延迟器需要独立于平台。准确地说,我运行了一个作业调度程序,显然我当前的延迟器不会与它兼容。我坚持的是延迟器的“独立”位。我已经使用Probe(采样时间探针)和Variable Integer Delay块在 SIMULINK 中敲掉了一个延迟器。然而,在我们的验收阶段,我们意识到调度程序不符合这样的配置,需要更内在和基本的东西——比如在 C/C++ 应用程序中运行的 while 循环。

初步解决方案

我能想到的解决方案如下:

  1. 定义一个名为 的全局静态时间片变量tslc。基本上,这是调度程序运行的频率。单位可以是秒

  2. 定义一个具有以下主体的函数:

    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 插槽之一。我们在测试平台上进行测试,最后在嵌入式系统卡上实施解决方案。

4

0 回答 0