![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
mezmay |
![]() ![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Случайно увидел интересную опцию класса QTimer - свойство timerType.
http://qt-project.org/doc/qt-5.0/qtcore/qt...#timerType-prop Оно может принимать значения: Цитата enum Qt::TimerType 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 По умолчанию при создании объекта класса QTimer используется значение Qt::CoarseTimer, то есть грубый таймер, в Windows - обычный таймер. Для использования точного таймера надо выбрать Qt::PreciseTimer, и тогда в Windows будет при возможности использоваться Multimedia timer. Простой рабочий пример на Qt 5.1: Раскрывающийся текст
Таймер был проверен в Windows 7 x64: по таймеру мы писали данные в COM-порт и проверяли осциллографом, результат хороший. Иногда проскакивают небольшие сдвиги, но частота пакетов сразу восстанавливается. Сообщение отредактировал mezmay - 24.1.2014, 13:16 |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
вообще это давняя легенда: использование COM-порта и некого точного таймера.
Т.к. таймер к программе никакой жёсткой привязки не имеет. Когда очередь событий виндовоза дойдёт до твоего приложения, только тогда оно отреагирует, не раньше не позже. И эти интервалы времени сильно зависят от работы других программ. У меня например когда Аська стартует, она при мерно на полсекунды "глушит" работу многих программ. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 11:27 |