Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Точное отслеживание времени с точностью 10 миллисекунд [D7, XP]


Страницы:   1 2

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, запусти кучу программ и посмотрим успеет или нет...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо