Як зробити затримку?
Як зробити затримку між двома подіями з точністю до 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