![]() |
|
![]() ![]() ![]() |
|
Garoh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 29.8.2006 Где: Москва Репутация: нет Всего: нет |
Доброго всем времени суток!
Мне один человек сказал, что есть таймер, который (поправьте, если пургу несу) связан с тактовой частотой компьютера и, соответственно, более точный, чем, к примеру, таймер класса TTimer. Помогите, отпишитесь, как использовать этот таймер, т.е. как его запускать и как вообще он называется. Если такового нет, расскажите, какие есть кроме обычного TTimer, потому как я уже убедился, что последний очень неточен, на его работу влияют посторонние процессы, и поэтому порой он вообще работает через пятую точку. Заранее спасибо! |
|||
|
||||
VectorMan |
|
|||
Antihero ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 9.4.2006 Репутация: нет Всего: 4 |
Можно использовать мультимедийные таймеры с помощью функций timeSetEvent, timeKillEvent
|
|||
|
||||
segmentation_fault |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 14.2.2005 Где: в интернете Репутация: нет Всего: 1 |
или GetTickCount(), QueryPerformanceCounter(), clock() в ctime.h, много разных.
Все три связаны с тактовой частотой, хотя насчет GetTickCount() 100% не уверен. Это сообщение отредактировал(а) segmentation_fault - 23.1.2007, 09:53 |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Все таймеры так или иначе связаны с тактовой частотой.
И на все таймеры влияют посторонние процессы. Чтобы не влияли - немного поможет приоритет процесса RealTime Либо перехват прерывания таймера (под ДОСом много раз делал, под виндами даже не пытался ни разу, не знаю возможно ли это вообще) |
|||
|
||||
Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Вот пример.
Там использовано 4 таймера (API): 100, 200, 300 и 500 мс и в цикле опроса вычисляется разница по времени между таймерами 200, 300, 500 и таймером в 100 мс. Пример очень легкий, разберешься. Добавлено @ 10:46 ![]() Это сообщение отредактировал(а) Bima - 23.1.2007, 10:46 Присоединённый файл ( Кол-во скачиваний: 37 ) ![]() -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
ame49 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.1.2007 Репутация: нет Всего: нет |
Есть такая книга Borland C++ Builder, автом Шамис В.А., техника визуального программирования, в ней есть пример создания компонента точного таймера. Суть его работы заключается в том , что создается поток и запускается на выполнение с более высоким приоритетом, чем у основного процесса. Я сравнивал работу двух таймеров , мною созданного и стандартного, она ощутима.
|
|||
|
||||
Garoh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 29.8.2006 Где: Москва Репутация: нет Всего: нет |
Спасибо всем за помощь, буду разбираться =)
З.Ы: 2 дня инета не было, так что ответил только сейчас |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Это называется мультимедийным таймером. Его точность обычно 1мс. И создается он при помощи.
Именно так он и работает, потому нет смысла изобретать велосипед. Дает самые точные тики, которые только возможно получить на писюке. У меня получалось до 0,1мкс, но точность зависит от частоты процессора. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |