Вверх ↑
Этот топик читают: Гость
Ответов: 1343
Рейтинг: 31
#1: 2015-01-20 21:07:17 ЛС | профиль | цитата
почему нет внешней точки скажем doDelay на компоненте Sleep?

ну или как можно сделать IC с настройкой задержки в микросекундах?
требовалось от компонента всего лишь 3 точки, doStart, onStart и настройка задержки doDelay

пробовал ковырять этот компонент но ничё не вышло в результате получал ошибки в несоответствии типа данных, данные для мода брал из простого таймера, а тоесть:


private
procedure SetDelay(Value:integer);

public
procedure _work_doDelay(var _Data:TData; Index:word);
property _prop_Delay:integer write SetDelay;

и добавлял в конфиг точку doDelay
карма: 2

0
Ответов: 8926
Рейтинг: 823
#2: 2015-01-20 22:04:30 ЛС | профиль | цитата
Rysik, ответов почти 900, стыдно такие вопросы задавать delay.rar
карма: 19

0
файлы: 1delay.rar [2.2KB] [200]
Ответов: 1343
Рейтинг: 31
#3: 2015-01-21 08:08:34 ЛС | профиль | цитата
Леонид писал(а):
стыдно такие вопросы задавать


Я не виноват что поиск по форуму такой...
карма: 2

0
Ответов: 9906
Рейтинг: 351
#4: 2015-01-21 08:27:07 ЛС | профиль | цитата
Леонид, для INI-файла, в таких случаях - модно ставить собаку перед именем св-ва.
А не писать целую строку для doDelay
карма: 9

0
Ответов: 8926
Рейтинг: 823
#5: 2015-01-21 09:52:25 ЛС | профиль | цитата
Galkov, давно не делал, забыл
Пошёл на поводу у коллеги Rysik-ка:
Rysik писал(а):
..добавлял в конфиг точку doDelay..

карма: 19

0
Ответов: 1343
Рейтинг: 31
#6: 2015-01-21 15:59:42 ЛС | профиль | цитата
ммм
почему если поставить таймер на 0 мс то он будет работать далеко не к 0 мс, а аж к 15 мс, проверил через TimeCounter
карма: 2

0
Ответов: 9906
Рейтинг: 351
#7: 2015-01-21 16:33:02 ЛС | профиль | цитата
Rysik писал(а):
почему если поставить таймер на 0 мс то он будет работать далеко не к 0 мс, а аж к 15 мс
Процы слишком слабые для кванта scheduler-а хотя бы в 1мс
Скажи спасибо, что 15мс, а не 20...
карма: 9

0
Ответов: 1343
Рейтинг: 31
#8: 2015-01-21 16:52:20 ЛС | профиль | цитата
Galkov писал(а):
Процы слишком слабые


так почему тогда компонент Sleep работает точ в точ как надо?
карма: 2

0
Ответов: 8926
Рейтинг: 823
#9: 2015-01-21 17:03:15 ЛС | профиль | цитата
Rysik, такое объяснение устроит: компонент Sleep работает от тактов процессора (у моего, к примеру, 3 500 000 000 тиков в секунду), а Timer работает от языка Паскаля -- 64 не точных тиков в секунду, т. е. как раз 15.625 миллисекунды
карма: 19

0
Ответов: 4630
Рейтинг: 749
#10: 2015-01-21 17:17:47 ЛС | профиль | цитата
Леонид, как раз "от тактов процессора" этот компонент имеет НИКАКУЮ точность. Можешь протестировать: code_34956.txt
Я потому и сделал мод на стандартной Sleep(), он точнее и не нагружает процессор
[offtop]А Rysik-а надо научить правильно измерять время, абсолютная величина которого находится возле предела точности.[/offtop]
карма: 26

0
файлы: 1code_34956.txt [1.9KB] [308]
Ответов: 1841
Рейтинг: 369
#11: 2015-01-21 17:20:02 ЛС | профиль | цитата
Информация по системному таймеру - http://habrahabr.ru/company/intel/blog/186998/
карма: 1
0
Ответов: 1343
Рейтинг: 31
#12: 2015-01-21 17:28:50 ЛС | профиль | цитата
да вобщем то зачем мне это:

Netspirit писал(а):
А Rysik-а надо научить правильно измерять время, абсолютная величина которого находится возле предела точности.


требовалось то точность задержки поточнее и при задержке в 0, реагировать тоже в 0 а не как таймер в 15мс...
карма: 2

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#13: 2015-01-21 17:31:38 ЛС | профиль | цитата
Rysik писал(а):
реагировать тоже в 0

Это в принципе невозможно, даже физически
карма: 22

0
Ответов: 4630
Рейтинг: 749
#14: 2015-01-21 17:33:49 ЛС | профиль | цитата
Вообще, что такое 0 мс? Это отсутствие любых задержек. Repeat, For ему в помощь.
карма: 26

0
Ответов: 1343
Рейтинг: 31
#15: 2015-01-21 18:48:49 ЛС | профиль | цитата
nesco писал(а):
Это в принципе невозможно, даже физически


я имел ввиду как можно ближе реагировать к 0, таймер берёт себе 15 мс, а Sleep берёт минимум... то что и надо
карма: 2

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)