Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Sleep() или функции PerfomanceCounter в зависимости от задачи

Отправлено koyodza (93.73.215.120) 04 января 2010, г. 15:15
В ответ на: Windows-программисты, подскажите, с помощью чего лучше сделать задержку в несколько мс? отправлено A 04 января 2010, г. 14:45

если точность не нужна, то однозначно старайтесь использовать Sleep, или вообще переходите на событийную модель (SetTimer, OnTimer)

Sleep передаёт управление системе, таким образом задача не захватывает CPU на 100%. Но Sleep имеет дискретность порядка 16 мсек в ХР (и кажется вообще NT), и около 55 мсек в 98/МЕ.

Функции PerfomanceCounter позволяют узнать частоту этого самого таймера (QueryPerfomanceFrequency) которая составляет (по личному опыту) 3,579МГц на AMD - машинах и тактовую ядра на Intel P-IV / Celeron
а также текущее значение таймера (QueryPerfomanceCounter). Обе функции работают с 64-битными целыми, при этом (внимание!) обязательно начальную обработку проводите именно в 64-битном виде (я как-то нарвался на неприятности из-за перевода в 32-бит)
Передавать управление ОС здесь не получится


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 56:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru