![]() |
|
|
![]()
|
|
| Adry |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.4.2011 Репутация: нет Всего: нет |
Рисую проект в MFC (Честно говоря, первый мой проект на VS c++ вообще в жизни. Во всем приходится разбираться по ходу)
Суть вопроса вот в чем. У меня в программе используются два таймера, которые отрабатываются функцией SetTimer. Первый таймер (на 1 секунду) работает вроде как нормально (по личным ощущениям, с точностью до милисекунд не проверяла), а вот второй я поставила на 10 милисекунд. Простите, что код привожу в таком виде: проект пишу на работе, дома даже VS не стоит. Код примерно такой
В результате в файле видим следующее 0 183000 1 183015 2 183031 3 183046 и так далее. (То есть не через 10, а через 15 или 16 милисекунд) Если ставлю таймер на 20 милисекунд - то же самое : срабатывание через 31-32 милисекунды. То есть заданный интервал*1.5 Что бы это могло значить и можно ли как-то это побороть? Это сообщение отредактировал(а) Adry - 22.5.2011, 09:34 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 4 Всего: 85 |
У обычного таймера очень грубая дискретность.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
В Windows дискретность таймера начинает совпадать с заданной от 55 мс. При чём иногда могут получаться выбросы +-10...15 мс. Если нужна высокая точность на малых интервалах - гугли мультимедийный таймер или таймеры DirectX. А лучше опиши задачу. М.б. такая точность и не нужна вообще ? Это сообщение отредактировал(а) borisbn - 21.5.2011, 00:05 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Adry |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.4.2011 Репутация: нет Всего: нет |
borisbn, спасибо за ответ! Все встало на свои места.
В принципе, мне 15-16 мс хватает. Пишу программу для управления одной железкой с ПК. Замеряли осциллографом: характерное время, за которое железка обрабатывает запрос и формирует ответ - это 8мс. (Плюс что-то еще на то, чтобы мне считать этот ответ по USB.) Так что 15 мс, в принципе, устраивает... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |