Название: Простой точный таймер, работает в Windows Отправлено: mezmay от Январь 24, 2014, 13:43 Случайно увидел интересную опцию класса QTimer - свойство timerType.
http://qt-project.org/doc/qt-5.0/qtcore/qt...#timerType-prop (http://"http://qt-project.org/doc/qt-5.0/qtcore/qtimer.html#timerType-prop") Оно может принимать значения: Цитировать enum Qt::TimerType По умолчанию при создании объекта класса QTimer используется значение Qt::CoarseTimer, то есть грубый таймер, в Windows - обычный таймер.The timer type indicates how accurate a timer can be. Qt::PreciseTimer 0 Precise timers try to keep millisecond accuracy Qt::CoarseTimer 1 Coarse timers try to keep accuracy within 5% of the desired nterval Qt::VeryCoarseTimer 2 Very coarse timers only keep full second accuracy Для использования точного таймера надо выбрать Qt::PreciseTimer, и тогда в Windows будет при возможности использоваться Multimedia timer. Простой рабочий пример на Qt 5.1: Код
Таймер был проверен в Windows 7 x64: по таймеру мы писали данные в COM-порт и проверяли осциллографом, результат хороший. Иногда проскакивают небольшие сдвиги, но частота пакетов сразу восстанавливается. Название: Re: Простой точный таймер, работает в Windows Отправлено: Fregloin от Январь 24, 2014, 14:49 на сколько я знаю, винда не есть RTOS и надеяться на такие промежутки таймера не стоит.
Название: Re: Простой точный таймер, работает в Windows Отправлено: Vamireh от Январь 24, 2014, 22:24 а насколько я знаю винда около 15мс дает точности в лучшем случае... хотя с внешнем тактовым генератором я 1мс делал, но это уже другая история.
|