Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2012, 02:12   #1
darkleo
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 20
По умолчанию Еще волнующий вопрос. Время работы таймера. Прямо-пропорционально производительности ПК?

Спасибо всем кто помогал мне в предыдущих вопросах. Огромное вам спасибо.

Последний вопрос, который меня мучает.

Есть задача в USB посылать пакеты.
Тайминг 1мс. Нужна макс точная задержка.
Мультимедийный таймер на моем ПК выдает эту точность. На нетбуке с XP уже нет. Это видно невооруженным взгядом.

Для выхода из этой ситуации я использую процедуру, найденную на просторах инета.

А именно
Цитата:
procedure tglobfunc.DelayUS(mS:int64); // Ожидание N microSec
var
Frq_Base, Time_memo, Time_now, dif: Int64;
begin
if QueryPerformanceFrequency(Frq_Base) then // Частота ПК
begin
QueryPerformanceCounter(Time_memo); // начальное значение
repeat
QueryPerformanceCounter(Time_now);
dif := ((Time_now - Time_memo) * 1000000) div Frq_Base;
until dif > mS*1000;
end;
end;
в итоге вызов delayus(1) дает приближенную к идеалу задржку к 1 мс

На менее производительных ПК ситуация меняется. Т.е. чем проще ПК тем явнее видна разница.
Мультимедийный таймер еще больше отстает.

Есть способ привести к равенству производительности задержки на разных ПК?

С уважением ко всем.
darkleo вне форума Ответить с цитированием
Старый 31.12.2012, 06:26   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...вы не под reltime-OS, точность будет плавать при 1 мс. Кода работы с USB вообще не видно, потому к чему упомянуто, неясно.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив записей: распределить премиальный фонд прямо пропорционально коэффициенту трудового участия каждого рабочего Лераа Паскаль, Turbo Pascal, PascalABC.NET 0 18.12.2012 23:34
Еще вопрос... Aralegi Компьютерное железо 9 11.08.2011 11:03
Перекинуть время работы таймера на переменную misher Общие вопросы Delphi 4 03.04.2011 22:03
[Вопрос] Как определить прогресс таймера? ZARO Помощь студентам 13 12.03.2010 06:23
Время таймера в проге, -программно остановать. Air Общие вопросы Delphi 6 02.02.2008 18:49