Як зробити затримку

Як зробити затримку?

Як зробити затримку між двома подіями з точністю до 1 мсек (крім Timer)?

Краще, звичайно, використовувати RTOS - QNX наприклад, хоча і лінукс напевно зійде. А так - можна тільки сподіватися, що хто-небудь не отожрет час. Маячок: в об'єктах синхронізації є CreateWaitableTimer (NT) і в окремому потоці WaitForSingleObject. А мета яка?

Є апішние функції
QueryPerformanceCounter і
QueryPerformanceFrequency

Подробиці в Windows SDK

Мені потрібно на LPT подавати сигнал з точно виміряним періодом.

Зроби краще залізячки на маленькому і дешевому контролері типу Атмел - краще буде працювати.

Може досить буде використовувати

> Затримку між двома подіями з точністю до 1 мсек
в Windows зробити неможливо.

Згоден, але найточніша затримка -
см. smok_er (28.01.03 11:16)

> smok_er
поміряти проміжок можна, точно задати інтервал до виклику події - НЕ МОЖНА.

Під Windows можна гарантувати, що затримка не менш заданої, а максимальна затримка, в деяких випадках, може бути до 30 секунд (при опитуванні мережі наприклад), і ніяк ти раніше подія не отримаєш, тільки в HAL на перериванні спеціального пристрою.


> Новачок (28.01.03 11:22)
> Мені потрібно на LPT подавати сигнал з точно виміряним періодом.

При чому тут "події", про яких ви все говорите. Тут все простіше.

Пам'ять: 0.73 MB
Час: 0.041 c

Схожі статті