Я изначально отправил этот вопрос, который, по-видимому, был чем-то, что не отвечало моим требованиям клиента Поэтому я переопределяю проблему:
Чтобы понять проблему немного больше, можно использовать временную диаграмму на оригинальном посте. Задержка должна быть независимой от платформы. Чтобы быть точным, я запускаю планировщик заданий, и, видимо, мой нынешний задерживатель не будет совместим с ним. То, с чем я застрял, это «Независимый» бит задержки. Я уже выбил задержку в SIMULINK с помощью Probe
(исследования времени выборки) и Variable Integer Delay
блоки. Однако на этапе принятия мы поняли, что планировщик не соответствует такой конфигурации и должен быть чем-то более внутренним и базовым — чем-то вроде цикла while, выполняющегося в приложении C / C ++.
Что я могу придумать, так это решение:
Определите глобальную и статическую переменную временного интервала, которая называется 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. Мы проводим тестирование на испытательном стенде и, наконец, внедряем решение на этой встроенной системной плате.
Задача ещё не решена.
Других решений пока нет …