Здравствуйте. Нужно написать обратный отсчет, который будет работать независимо от системного времени, т.е. чтобы при изменении системного времени таймер не изменял свои показатели. Получается что нельзя использовать компоненты даты/времени, пришлось все делать через таймер. Если по обычному таймеру каждую секунду отнимать от установленного времени секунду, то через определенное время набежит пару лишних секунд (у меня за 10 минут набежало 26 лишних секунд), так что пришлось делать через независимый таймер. В общем написал я этот независимый обратный отсчет, но мне кажется что это скорее издевательство над Hiasm, чем нормальный обратный отсчет.
Уважаемые специалисты по Hiasm, пожалуйста, посмотрите на мое творение, и скажите как его можно улучшить/оптимизировать, код прикладываю.
code_29658.txt
Этот топик читают: Гость
Ответов: 24
Рейтинг: 4
|
|||
карма: 1 |
|
Ответов: 758
Рейтинг: 112
|
|||
карма: 1 |
|
Ответов: 24
Рейтинг: 4
|
|||
да, во первых там обычный таймер (а не независимый) за пару минут набегут лишние секунды, во-вторых, там нет всего-того что мне нужно (минуты, секунды, часы)
Пожалуйста, посмотрите на схему, и помогите... |
|||
карма: 1 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 22:06:48 |
|||
карма: 0 |
|
Ответов: 24
Рейтинг: 4
|
|||
37.45.12.145, опечатка ) , поправьте пожалуйста..
|
|||
карма: 1 |
| ||
файлы: 1 | code_29658.txt [6.5KB] [129] |
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | code_29662.txt [942B] [118] |
Ответов: 24
Рейтинг: 4
|
|||
Tad, спасибо, но Ваш таймер зависит от системного времени, по этому и не набегают секунды. Мне нужно задать определенное время, и независимо от системного время/даты делать отсчет. По этому, единственное решение которое я нашел - это по таймеру каждую секунду отнимать секунду от заданного времени.
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | code_29663.txt [1.4KB] [115] | ||
Голосовали: | foksov |
Ответов: 24
Рейтинг: 4
|
|||
Tad,
По делу мне может кто-то помочь? |
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
fooger, системное время стабилизировано кварцем, максимум 10^-5 погрешность, т. е. не более секунды за сутки, о каких 26 секундах может идти речь Ещё одна схемка: code_29665.txt
|
|||
карма: 19 |
| ||
файлы: 1 | code_29665.txt [1.8KB] [131] |
Ответов: 24
Рейтинг: 4
|
|||
Леонид, в том то и дело, что нельзя мне использовать системное время, и вообще привязку к времени. Мне нужен независимый от времени таймер. Если запустить Ваш код, нажать старт, потом отмотать системное время на две минуты назад, то таймер также изменится на +2 мин (чего делать нельзя). В моем случае в таймере набегало 26 секунд только по той причине, что каждую секунду я просто отнимал от заданного времени одну секунду. Впрочем это исправилось с переходом на независимый таймер. Меня интересует можно ли упростить мою схему, и вообще можно ли ее использовать (так как там нет привязки к времени).
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
fooger писал(а): По делу мне может кто-то помочь?fooger писал(а): независимо от системного время/даты делать отсчет |
|||
карма: 25 |
|
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Tad писал(а): объясни конкретно, что значит "независимо" ?Да вполне нормально объяснил fooger писал(а): который будет работать независимо от системного времени, т.е. чтобы при изменении системного времени таймер не изменял свои показателиСильно смахивает на попытку сделать защиту по времени использования ПО, те при принудительном изменении системной даты собственный таймер не должен менять показания. В принципе, ничего сильно сложного в этом нет. В IC это можно сделать несколькими строчками, используя QueryPerformanceCounter |
|||
карма: 22 |
|
Ответов: 8930
Рейтинг: 823
|
|||
fooger, Вот тоже, но по тикам процессора code_29666.txt
|
|||
карма: 19 |
| ||
файлы: 1 | code_29666.txt [1.6KB] [131] | ||
Голосовали: | ser_davkin, fooger |
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Леонид писал(а): Вот тоже, но по тикам процессораВо, и я о том же ------------ Дoбавленo в 23.13: Леонид, ты на правильном пути, но где у тебя сохраняются предыдущие результаты Прога же может быть запущена или остановлена в любое время, а таймер должен считать, и текущие результаты отсета должны где-то сохраниться, а при запуске суммироваться. А если произошло несанкционированное закрытие, то результат потеряется |
|||
карма: 22 |
|