почему нет внешней точки скажем 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
Этот топик читают: Гость
Ответов: 1343
Рейтинг: 31
|
|||
карма: 2 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Rysik, ответов почти 900, стыдно такие вопросы задавать delay.rar
|
|||
карма: 19 |
| ||
файлы: 1 | delay.rar [2.2KB] [200] |
Ответов: 1343
Рейтинг: 31
|
|||
Леонид писал(а): стыдно такие вопросы задаватьЯ не виноват что поиск по форуму такой... |
|||
карма: 2 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Леонид, для INI-файла, в таких случаях - модно ставить собаку перед именем св-ва.
А не писать целую строку для doDelay |
|||
карма: 9 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Galkov, давно не делал, забыл
Пошёл на поводу у коллеги Rysik-ка: Rysik писал(а): ..добавлял в конфиг точку doDelay.. |
|||
карма: 19 |
|
Ответов: 1343
Рейтинг: 31
|
|||
ммм
почему если поставить таймер на 0 мс то он будет работать далеко не к 0 мс, а аж к 15 мс, проверил через TimeCounter |
|||
карма: 2 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Rysik писал(а): почему если поставить таймер на 0 мс то он будет работать далеко не к 0 мс, а аж к 15 мсСкажи спасибо, что 15мс, а не 20... |
|||
карма: 9 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Galkov писал(а): Процы слишком слабыетак почему тогда компонент Sleep работает точ в точ как надо? |
|||
карма: 2 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Rysik, такое объяснение устроит: компонент Sleep работает от тактов процессора (у моего, к примеру, 3 500 000 000 тиков в секунду), а Timer работает от языка Паскаля -- 64 не точных тиков в секунду, т. е. как раз 15.625 миллисекунды
|
|||
карма: 19 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Леонид, как раз "от тактов процессора" этот компонент имеет НИКАКУЮ точность. Можешь протестировать: code_34956.txt
Я потому и сделал мод на стандартной Sleep(), он точнее и не нагружает процессор [offtop]А Rysik-а надо научить правильно измерять время, абсолютная величина которого находится возле предела точности.[/offtop] |
|||
карма: 26 |
| ||
файлы: 1 | code_34956.txt [1.9KB] [308] |
Ответов: 1841
Рейтинг: 369
|
|||
Информация по системному таймеру - http://habrahabr.ru/company/intel/blog/186998/
|
|||
карма: 1 |
|
Ответов: 1343
Рейтинг: 31
|
|||
да вобщем то зачем мне это:
Netspirit писал(а): А Rysik-а надо научить правильно измерять время, абсолютная величина которого находится возле предела точности.требовалось то точность задержки поточнее и при задержке в 0, реагировать тоже в 0 а не как таймер в 15мс... |
|||
карма: 2 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Rysik писал(а): реагировать тоже в 0Это в принципе невозможно, даже физически |
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Вообще, что такое 0 мс? Это отсутствие любых задержек. Repeat, For ему в помощь.
|
|||
карма: 26 |
|
Ответов: 1343
Рейтинг: 31
|
|||
nesco писал(а): Это в принципе невозможно, даже физическия имел ввиду как можно ближе реагировать к 0, таймер берёт себе 15 мс, а Sleep берёт минимум... то что и надо |
|||
карма: 2 |
|