0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52

Как TTimer только в микросекундах

28.09.2014, 02:21. Показов 2478. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите наподобие TTimer только в микросекундах. Как такое сделать или есть уже готовые решения?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2014, 02:21
Ответы с готовыми решениями:

Как синхронизировать Компонент TTimer с системным временем
Всем привет. Вот этот компонент с интервалом в 1000 отстает от системного времени компьютера. Как же сделать точь-в-точь?

TTimer
Что и чему нужно присваивать чтобы уменьшать размер текста при помощи интервала таймера. например с интервалом в 2 секунды уменьшать размер...

Ttimer
Расскажите, как работать с таймером в Delphi. Если я в интервале задам 50. И вот так запишу: Timer1.Enabled:=True; ...

19
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
28.09.2014, 02:25
а он в миллисекундах что ли? вот никогда не мучил такой вопрос.
0
пофигист широкого профиля
4764 / 3200 / 861
Регистрация: 15.07.2013
Сообщений: 18,573
28.09.2014, 02:31
Цитата Сообщение от codeok Посмотреть сообщение
Подскажите наподобие TTimer только в микросекундах. Как такое сделать или есть уже готовые решения?
Есть куча готовых решений. Но не на персональном компьютере.
0
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
28.09.2014, 02:35  [ТС]
Цитата Сообщение от esculap_ra Посмотреть сообщение
а он в миллисекундах что ли?
Да, в миллисекундах. Хотел на канве бегущею строку сделать с таймером, а она медленно пробегает.
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
28.09.2014, 02:37
ищи вопросы в разделе ассемблера. нужно отталкиваться от тактовой частоты процессора. для зилога я программировал на ассемблере, а тут пас.

Добавлено через 2 минуты
Цитата Сообщение от codeok Посмотреть сообщение
Хотел на канве бегущею строку сделать с таймером,
та ты чейт не так организовал. для бегучки там сотни милисек надо. покажи код.
1
пофигист широкого профиля
4764 / 3200 / 861
Регистрация: 15.07.2013
Сообщений: 18,573
28.09.2014, 02:45
Цитата Сообщение от codeok Посмотреть сообщение
Да, в миллисекундах. Хотел на канве бегущею строку сделать с таймером, а она медленно пробегает.
Вот отсюда подробнее пожалуйста. Кто медленнее пробегает? И в чём это выражается? И как человеческий глаз может найти разницу между миллисекундами и микросекундами?
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
28.09.2014, 02:53
короче, я примерно догадываюсь. ты перерисовку делаешь по-пиксельно, и это приводит к затратам машинного времени. нужно просто по таймеру стирать всю сроку и снова ее рисовать. для этого с процедуре отнимаешь символ с головы и клеишь в хвост, а потом копируешь нужную часть (с головы, скажем 100 символов) и отображаешь.
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
28.09.2014, 03:02  [ТС]
Цитата Сообщение от esculap_ra Посмотреть сообщение
ты перерисовку делаешь по-пиксельно
вот так рисую:
Delphi
1
Canvas.TextOut(x,10,'=>>');
Бежит и не слишком быстро и не слишком медленно. Да и не в этом суть, просто захотелось узнать как задержку в микросекундах делают.
0
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
28.09.2014, 03:08  [ТС]
Прикрепил файл с проектом. Правда я там все это дело в TCustomControl нахимичел)
Вложения
Тип файла: rar timer.rar (59.6 Кб, 13 просмотров)
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
28.09.2014, 03:37
походу в языках верхнего уровня это не делается.
1
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
28.09.2014, 09:52
Лучший ответ Сообщение было отмечено codeok как решение

Решение

Анимация вращения
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
28.09.2014, 17:22  [ТС]
raxp, а там нигде не приводится кода процедуры:
Delphi
1
delay_microsec(zadergka);
можете код тут написать?
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
28.09.2014, 17:36
QueryPerformanceFrequency + QueryPerformanceCounter, см. MSDN.
1
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
28.09.2014, 18:03
Слушай, codeok, у меня 7-я версия и твой код не работает, да и особо ковыряться неохота. Я бегло посмотрел, и по-моему тут дело не в задержке и в наложении событий ontimer. Попробуй при событии запретить таймер, а когда код отработает, снова разрешить.
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
28.09.2014, 18:28  [ТС]
esculap_ra, Попробовал, все осталось как было. Мне кажется, это из-за таймера все таки. Если ставлю к примеру 55 мс, то как раз секунд за 15 и пробегает(ширина 300 пикселей).
0
74 / 62 / 26
Регистрация: 05.08.2014
Сообщений: 218
28.09.2014, 21:30
codeok, насколько я помню, точность таймера порядка 50 миллисекунд. Смысл?
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
28.09.2014, 23:58  [ТС]
Всем спасибо за помощь, нашел вот такую процедуру задержки:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure DelayUS(MicroS:int64); // Ожидание N microSec
var
  Frq_Base, Time_memo, Time_now, dif: Int64;
begin
  if QueryPerformanceFrequency(Frq_Base) then // Частота ПК
    begin
      QueryPerformanceCounter(Time_memo);        // начальное значение
      repeat
      QueryPerformanceCounter(Time_now);
      dif := ((Time_now - Time_memo) * 1000000) div Frq_Base;
      until dif > MicroS;
    end;
end;
 
 
 
Begin
 
DelayUS(4550); // Задержка микросек
 
End;
Правда такой метод процессорные ресурсы компьютера жрет. На моем ноуте core-i3 загрузка ЦП показала 25 процентов и зашумел вентилятор охлаждения.
0
пофигист широкого профиля
4764 / 3200 / 861
Регистрация: 15.07.2013
Сообщений: 18,573
29.09.2014, 01:45
Цитата Сообщение от codeok Посмотреть сообщение
Правда такой метод процессорные ресурсы компьютера жрет.
И ничего не гарантирует при использовании на практике.
0
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
29.09.2014, 03:03  [ТС]
Цитата Сообщение от TooHot Посмотреть сообщение
насколько я помню, точность таймера порядка 50 миллисекунд. Смысл?
Это все приблизительно.

Цитата Сообщение от northener Посмотреть сообщение
И ничего не гарантирует при использовании на практике.
А какие тогда есть альтернативы? Если они есть конечно.
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
29.09.2014, 09:47
Лучший ответ Сообщение было отмечено raxp как решение

Решение

Цитата Сообщение от codeok Посмотреть сообщение
А какие тогда есть альтернативы? Если они есть конечно
Альтернативы две:
1. Использовать ОС реального времени, коей ни одна Винда (кроме спецверсий а-ля WinCE) не является.
2. Забить на затею как на изначально бессмысленную - человеческий глаз даже в теории не способен различать смену кадров с частотой в миллионные доли секунды.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2014, 09:47
Помогаю со студенческими работами здесь

TTimer + PaintBox
Задание выглядит так: нарисовать в делфи пятиугольник и с помощью TTimer показать его плавную вырисовку. Ну нарисовать не сложно, а вот как...

Работа с TTimer
Добрый вечер. Помогите доделать прогу не могу освоить таймер. Задание у меня было такое. Создать программу, рисующую график функции ...

Не работает TTimer!
Всем привет. Сразу к проблеме. Таймер включается здесь: procedure TMainForm.WSocketDataAvailable(Sender: TObject; ErrCode: Word); var...

Ttimer не корректная работа
Доброго времени суток, помогите разобраться в чем может быть причина такого поведения программы, при срабатывания таймера вылетает ошибка...

Не могу разобраться с TTimer!
Мужики, я создал игру лабиринт ,карты тоже сделал, вот только теперь никак не додумаюсь, как сделать так,чтобы компонент TTimer на Tlabel...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru