|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.04.2011, 13:58 | #1 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Sleep() работает не точно, как точнее
Помогите пожалуйста. Необходимо получить фиксированный интервал времени.
Вот мой код: Код:
Sleep(20)' work time = 31 Как получить более точное значение? Какой минимальный интервал времени можно получить? |
20.04.2011, 16:43 | #2 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Мультимедийный таймер точнее, функции timeSetEvent, timeKillEvent из winmm.dll, точность как бы 1 миллисекунда. Примеров по форуму-кучка.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
20.04.2011, 18:56 | #3 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
20.04.2011, 19:50 | #4 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Ulex, спасибо! Я находил скудную информицию о QueryPerformanceFrequency и QueryPerformanceCounter, но так и не нашёл пример их использования. К примеру: запихать их в функцию и вызывать для задержки в виде Delay(500) // 500 микросекунд. Если есть у вас ссылки на какие-либо примеры - я был бы рад, а если нет - не напрягайтесь.
p51x, какие RTOS вы имели ввиду? |
20.04.2011, 20:27 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Ulex, подскажите, пожалуйста, какую минимальную задержку по времени можно организовать, используя ассемблер?
Последний раз редактировалось 8Observer8; 20.04.2011 в 20:32. |
20.04.2011, 21:18 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
асм где? в ос (какой)? на голом проце (каком)?
|
21.04.2011, 05:32 | #7 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Дело в том, что я пишу программатор микроконтроллера AT89S52, который программируется через LPT порт. На моём рабочем компьютере стоит WinXP. Процессор там фирмы Intel. Так программируется микроконтроллер очень долго из-за таких больших задержек между импульсами. К примеру, чтобы записать 50 байт уходит примерно минута. Хотелось бы сделать минимальную задержку, насколько это возможно.
Последний раз редактировалось 8Observer8; 21.04.2011 в 05:48. |
22.04.2011, 06:26 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Может не зря фирмы делают JTAG отдельным модулем с МП на борту?..
|
22.04.2011, 08:59 | #9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Мне интересно самому. Тем более алгоритм программирования описан в datasheete и он не сложен.
А из этого затруднительного положения я вышел так: Код:
Последний раз редактировалось 8Observer8; 22.04.2011 в 10:05. Причина: NOP забыл |
22.04.2011, 15:01 | #10 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
msdn://Using Multimedia Timers
На делфях выглядит примерно так: delay - частота вызва TimerProc в мс resolution - разрешение, оно же "точность", измеряется в попугаях. При значении 0 разброс промежутков между вызовами будет минимально возможным для не-RTOS, но в ущерб общей производительности системы Код:
пыщь
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу найти ошибку,точнее как исправить!(Задание с файлами) | Ксения Вадимовна)) | Помощь студентам | 0 | 06.12.2010 22:39 |
пищалка, точнее ее прога | my_sappho_story | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 16 | 05.12.2010 02:36 |
Какой метод точнее? | Vredina90 | Помощь студентам | 2 | 21.10.2010 17:40 |
Как заменить sleep в потоке? чтобы получить задержку 5 мили | Dasverd2010 | Общие вопросы Delphi | 13 | 07.09.2010 14:29 |
lnk, а точнее как узнать путь к exe. | Zeraim | Общие вопросы Delphi | 4 | 25.07.2009 13:59 |