Независимый от платформы таймер задержки

проблема

Я изначально отправил этот вопрос, который, по-видимому, был чем-то, что не отвечало моим требованиям клиента Поэтому я переопределяю проблему:

Чтобы понять проблему немного больше, можно использовать временную диаграмму на оригинальном посте. Задержка должна быть независимой от платформы. Чтобы быть точным, я запускаю планировщик заданий, и, видимо, мой нынешний задерживатель не будет совместим с ним. То, с чем я застрял, это «Независимый» бит задержки. Я уже выбил задержку в SIMULINK с помощью Probe (исследования времени выборки) и Variable Integer Delay блоки. Однако на этапе принятия мы поняли, что планировщик не соответствует такой конфигурации и должен быть чем-то более внутренним и базовым — чем-то вроде цикла while, выполняющегося в приложении C / C ++.

Начальное решение

Что я могу придумать, так это решение:

  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. Мы проводим тестирование на испытательном стенде и, наконец, внедряем решение на этой встроенной системной плате.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]