Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Вниз

Точное отслеживание времени с точностью 10 миллисекунд   Найти похожие ветки 

 
Darvin ©   (2007-02-08 15:13) [0]

Здравствуйте.
Мне необходимо, чтобы происходили определенные события с точностью 10 миллисекунд. Стандартный таймер генерирует события реже, если поставить интервал 10. Как можно решить эту проблему?


 
palva ©   (2007-02-08 17:07) [1]

Для этого ставят другую операционную систему. Реального времени. Типа QNX.


 
Efir   (2007-02-08 17:30) [2]

Ну почему же, SetTimer вполне способен генерировать события с точностью до 5 мс (ну по крайней мере до 10 точно).


 
Kolan ©   (2007-02-08 17:40) [3]

> Ну почему же, SetTimer вполне способен генерировать события
> с точностью до 5 мс (ну по крайней мере до 10 точно).

Поставь на Pentium II, запусти кучу программ и посмотрим успеет или нет...


 
Efir   (2007-02-08 17:42) [4]


> Kolan ©   (08.02.07 17:40) [3]


А кто сказал, что его нужно запускать на Pentium II с кучей программ?


 
Kolan ©   (2007-02-08 17:43) [5]

> [4] Efir   (08.02.07 17:42)
>
> > Kolan ©   (08.02.07 17:40) [3]
>
>
> А кто сказал, что его нужно запускать на Pentium II с кучей
> программ?


А я грю что Цштвщцы не ОС реального времени. Она тебе ничего не гарантирует...


 
Kolan ©   (2007-02-08 17:43) [6]

> Цштвщцы

Windows


 
Правильный Вася   (2007-02-08 18:19) [7]

пробуй мультимединый таймер он точнее

ps зачем такая точность?


 
GrayFace ©   (2007-02-08 18:24) [8]

Efir   (08.02.07 17:30) [2]
Ну почему же, SetTimer вполне способен генерировать события с точностью до 5 мс (ну по крайней мере до 10 точно).

У него ограничение 10мс.


 
Efir   (2007-02-08 21:55) [9]


> GrayFace ©   (08.02.07 18:24) [8]


У меня при выставлении интервала на 0 таймер срабатывал 200 раз в сек. А вот у дельфийского компонента точно ограничение 10 мс.


 
DrPass ©   (2007-02-09 01:05) [10]


>  меня при выставлении интервала на 0 таймер срабатывал 200
> раз в сек. А вот у дельфийского компонента точно ограничение
> 10 мс.

Да ну? А в код дельфийского компонента ты не заглядывал? Загляни, прежде чем ерунду говорить.


 
Германн ©   (2007-02-09 01:34) [11]


> А вот у дельфийского компонента точно ограничение 10 мс.

Это не у "дельфийского компонента" TTimer, а у системного таймера, который использует данный компонент. И не всегда, а только в линейке NT. В 9х-системах данное ограничение составляет ~55 мс.


 
ЮЮ ©   (2007-02-09 05:30) [12]

И, всё-таки, главный вопрос - что это за событие и зачем так часто? А что-то ещё программа делает? А успеет сделать, если добъешься желаемого?


 
Efir   (2007-02-09 10:47) [13]


> Да ну? А в код дельфийского компонента ты не заглядывал?
>  Загляни, прежде чем ерунду говорить.


Да я прекрасно знаю, что TTimer использует SetTimer, но однако ж результаты практических испытаний показывают разные возможности (по прайней мере в ХР). Я б не говорил эту ерунду, ели бы сам не проверял.


 
smaller   (2007-02-09 12:09) [14]

Мультимедийный  таймер - гарантированное решение проблемы (разрешение до 1 мс).
Только не во всяком хелпе можно найти его описание - мне как то объясняли, где искать, да забыл, хотя сам таймер использую постоянно.


 
Darvin ©   (2007-02-09 12:27) [15]

>smaller   (09.02.07 12:09) [14]
А "Мультимедийный  таймер" это что за таймер? Где о нем можно почитать?

>ЮЮ ©   (09.02.07 05:30) [12]
Нужно анимировать процесс, происходящий в реальном времени. Шаг анимации должен быть 10 мс.

Я пробовал поставить Intreval = 1, картинка сменяется чаще, чем 10 раз в секунду. А нуюно, чтоб было ровно 10 раз в сек.


 
DiamondShark ©   (2007-02-09 12:36) [16]


> А "Мультимедийный  таймер" это что за таймер? Где о нем
> можно почитать?

тут читать

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:38) [17]

> А нуюно, чтоб было ровно 10 раз в сек.
Конечно, 100 раз в сек. Моя ошибка ;-)


 
Думкин ©   (2007-02-09 12:44) [18]


> картинка сменяется чаще, чем 10 раз в секунду


> Конечно, 100 раз в сек. Моя ошибка ;-)


Это для визуализации в реальном времени или как? Человеку больше 25 кадров вроде не катит.


 
Darvin ©   (2007-02-09 13:00) [19]

>Думкин ©   (09.02.07 12:44) [18]
Анимация сигнала с частотой дискретизации 100 Гц


 
DiamondShark ©   (2007-02-09 13:19) [20]


> Darvin ©   (09.02.07 13:00) [19]

Это не значит, что анимировать надо пренепременно с частотой 100 к/сек
Человек всё равно не способен реагировать на изменения с такой частотой.

Кроме того, процесс анимации -- он "тяжёлый", и пытаться осуществить его синхронно с обработкой сигнала -- плохая затея.

Лучше поступить так.
1. Идёт накопление сигнала синхронно с источником.
2. Таймер генерирует события для отрисовки кадров. При отрисовке кадра рассчитываются и рисуются ВСЕ изменения, которые накопились со времени отрисовки последнего кадра. Кадр рисуется.


 
Amoeba ©   (2007-02-09 13:23) [21]

Может эта статья поможет:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=434


 
Darvin ©   (2007-02-09 13:52) [22]

>Amoeba ©   (09.02.07 13:23) [21]
Спасибо за ссылку. Попробую.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.044 c
3-1165219427
DelphiLexx
2006-12-04 11:03
2007.02.25
Foreign Key определить все зависимые элементы


15-1170415685
ТуцГыук
2007-02-02 14:28
2007.02.25
Linux


2-1170522645
Defort
2007-02-03 20:10
2007.02.25
Пусто или же не пусто?


15-1170316086
@!!ex(from work)
2007-02-01 10:48
2007.02.25
PC must die


2-1170676945
Alex_ey
2007-02-05 15:02
2007.02.25
treeview





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский