![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Точное отслеживание времени с точностью 10 миллисекунд [D7, XP]
Darvin © (2007-02-08 15:13:00)Здравствуйте.
Мне необходимо, чтобы происходили определенные события с точностью 10 миллисекунд. Стандартный таймер генерирует события реже, если поставить интервал 10. Как можно решить эту проблему?
Darvin (2007-02-09 13:52:00) [1]>Amoeba © (09.02.07 13:23) [21]
Спасибо за ссылку. Попробую.
Amoeba (2007-02-09 13:23:00) [2]Может эта статья поможет:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=434
DiamondShark (2007-02-09 13:19:00) [3]
> Darvin © (09.02.07 13:00) [19]
Это не значит, что анимировать надо пренепременно с частотой 100 к/сек
Человек всё равно не способен реагировать на изменения с такой частотой.
Кроме того, процесс анимации -- он "тяжёлый", и пытаться осуществить его синхронно с обработкой сигнала -- плохая затея.
Лучше поступить так.
1. Идёт накопление сигнала синхронно с источником.
2. Таймер генерирует события для отрисовки кадров. При отрисовке кадра рассчитываются и рисуются ВСЕ изменения, которые накопились со времени отрисовки последнего кадра. Кадр рисуется.
Darvin (2007-02-09 13:00:00) [4]>Думкин © (09.02.07 12:44) [18]
Анимация сигнала с частотой дискретизации 100 Гц
Думкин (2007-02-09 12:44:00) [5]
> картинка сменяется чаще, чем 10 раз в секунду
> Конечно, 100 раз в сек. Моя ошибка ;-)
Это для визуализации в реальном времени или как? Человеку больше 25 кадров вроде не катит.
Darvin (2007-02-09 12:38:00) [6]> А нуюно, чтоб было ровно 10 раз в сек.
Конечно, 100 раз в сек. Моя ошибка ;-)
DiamondShark (2007-02-09 12:36:00) [7]
> А "Мультимедийный таймер" это что за таймер? Где о нем
> можно почитать?
тут читать
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_multimedia_timers.asp
> Шаг анимации должен быть 10 мс.
> А нуюно, чтоб было ровно 10 раз в сек.
Ы... Либо я чего-то не понял, либо кто-то в школе арифметику не учил.
10 раз в секунду -- это шаг 0.1 сек
а 10 мс -- это 0.01 сек
Darvin (2007-02-09 12:27:00) [8]>smaller (09.02.07 12:09) [14]
А "Мультимедийный таймер" это что за таймер? Где о нем можно почитать?
>ЮЮ © (09.02.07 05:30) [12]
Нужно анимировать процесс, происходящий в реальном времени. Шаг анимации должен быть 10 мс.
Я пробовал поставить Intreval = 1, картинка сменяется чаще, чем 10 раз в секунду. А нуюно, чтоб было ровно 10 раз в сек.
smaller (2007-02-09 12:09:00) [9]Мультимедийный таймер - гарантированное решение проблемы (разрешение до 1 мс).
Только не во всяком хелпе можно найти его описание - мне как то объясняли, где искать, да забыл, хотя сам таймер использую постоянно.
Efir (2007-02-09 10:47:00) [10]
> Да ну? А в код дельфийского компонента ты не заглядывал?
> Загляни, прежде чем ерунду говорить.
Да я прекрасно знаю, что TTimer использует SetTimer, но однако ж результаты практических испытаний показывают разные возможности (по прайней мере в ХР). Я б не говорил эту ерунду, ели бы сам не проверял.
ЮЮ (2007-02-09 05:30:00) [11]И, всё-таки, главный вопрос - что это за событие и зачем так часто? А что-то ещё программа делает? А успеет сделать, если добъешься желаемого?
Германн (2007-02-09 01:34:00) [12]
> А вот у дельфийского компонента точно ограничение 10 мс.
Это не у "дельфийского компонента" TTimer, а у системного таймера, который использует данный компонент. И не всегда, а только в линейке NT. В 9х-системах данное ограничение составляет ~55 мс.
DrPass (2007-02-09 01:05:00) [13]
> меня при выставлении интервала на 0 таймер срабатывал 200
> раз в сек. А вот у дельфийского компонента точно ограничение
> 10 мс.
Да ну? А в код дельфийского компонента ты не заглядывал? Загляни, прежде чем ерунду говорить.
Efir (2007-02-08 21:55:00) [14]
> GrayFace © (08.02.07 18:24) [8]
У меня при выставлении интервала на 0 таймер срабатывал 200 раз в сек. А вот у дельфийского компонента точно ограничение 10 мс.
GrayFace (2007-02-08 18:24:00) [15]Efir (08.02.07 17:30) [2]
Ну почему же, SetTimer вполне способен генерировать события с точностью до 5 мс (ну по крайней мере до 10 точно).
У него ограничение 10мс.
Правильный Вася (2007-02-08 18:19:00) [16]пробуй мультимединый таймер он точнее
ps зачем такая точность?
Kolan (2007-02-08 17:43:00) [17]> Цштвщцы
Windows
Kolan (2007-02-08 17:43:00) [18]> [4] Efir (08.02.07 17:42)
>
> > Kolan © (08.02.07 17:40) [3]
>
>
> А кто сказал, что его нужно запускать на Pentium II с кучей
> программ?
А я грю что Цштвщцы не ОС реального времени. Она тебе ничего не гарантирует...
Efir (2007-02-08 17:42:00) [19]
> Kolan © (08.02.07 17:40) [3]
А кто сказал, что его нужно запускать на Pentium II с кучей программ?
Kolan (2007-02-08 17:40:00) [20]> Ну почему же, SetTimer вполне способен генерировать события
> с точностью до 5 мс (ну по крайней мере до 10 точно).
Поставь на Pentium II, запусти кучу программ и посмотрим успеет или нет...