powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Таймер: интервал менее 1 миллисекунды.
15 сообщений из 15, страница 1 из 1
Таймер: интервал менее 1 миллисекунды.
    #34497471
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые гуру. Подскажите пожалуйста каким образом
организовать программный таймер средствами DDK с интервалом
менее(или хотя бы) 1 миллисекунды в драйвере Windows? Может
быть "посадить" обработчик прерывания на системные часы?
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34497498
daevaorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://msdn2.microsoft.com/en-us/library/twchhe95(vs.80).aspx
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34497516
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__rdtsc() вснго лишь возвращает тики. А причём здесь таймер?
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34497740
daevaorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А при том, что заня тики и их частоту (т.е. частоту процессора) можно очень точно считать время
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34497789
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в режиме ядра создал таймер оповещения с DPC, то есть события от таймера срабатывают на
IRQL DISPATCH_LEVEL. Так вот минимальный интервал между событиями примерно 15 миллисекунд.
Меньшего система не позволила. Дело то не в тиках, а как добиться минимального интервала между событиями таймера!
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34498378
IcyCool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а разме можно получить интервал короче 10мс на стандартной винде? Насколько я знаю - это в принципе невозможно
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34498463
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто-нибудь подключал обработчик прерывания на часы? Драйвер часов не захватывает их монопольно?
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34563074
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кого интересует, то таймер в режиме ядра можно организовать следующим образом, правда при этом пожертвовав одним из CОM портов:
"Вешаем" обработчик прерывания на один из портов. У порта запрещаем все прерывания,
за исключением готовности приёма следующего байта. Пишем в порт байт, получаем прерывание,
пишем снова - снова получаем прерывание ... Причём интервал такого таймера настраивается
скоростью передачи.
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34566303
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SPA_OSAЕсли кого интересует, то таймер в режиме ядра можно организовать следующим образом, правда при этом пожертвовав одним из CОM портов:
"Вешаем" обработчик прерывания на один из портов. У порта запрещаем все прерывания,
за исключением готовности приёма следующего байта. Пишем в порт байт, получаем прерывание,
пишем снова - снова получаем прерывание ... Причём интервал такого таймера настраивается
скоростью передачи.

Ну и получится интервал где-то 15мс
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34569481
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Lelikk. Если Вы понимаете разницу между PASSIVE_LEVEL и IRQL равным или
выше DISPATCH_LEVEL, то данное высказывание неверно. Если не понимаете - давайте объясню, почему Windows в режиме ядра может работать как ОС "мягкого реального времени".
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34570426
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SPA_OSAДля Lelikk. Если Вы понимаете разницу между PASSIVE_LEVEL и IRQL равным или
выше DISPATCH_LEVEL, то данное высказывание неверно. Если не понимаете - давайте объясню, почему Windows в режиме ядра может работать как ОС "мягкого реального времени".

Уровни приоритета выполнения я знаю.

Комментарий относился вот к чему:
SPA_OSA
...Причём интервал такого таймера настраивается
скоростью передачи...


Признаюсь, странновато разделил: 152000/8000=19 , откуда минимальный интервал действичтельно 1/19 милисекунды.
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34570700
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и понял, что это простое недоразумение.
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34593202
galazoline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вы не могли бы показать сам код, мне такая скорость очень нужна, но я не знаю как запрещать прерывания и писать байт в порт.
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34593213
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
LelikkПризнаюсь, странновато разделил: 152000/8000=19 , откуда минимальный интервал действичтельно 1/19 милисекунды.
минимум винды - 1/18-я.
...
Рейтинг: 0 / 0
Таймер: интервал менее 1 миллисекунды.
    #34600418
SPA_OSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
galazolineа вы не могли бы показать сам код, мне такая скорость очень нужна, но я не знаю как запрещать прерывания и писать байт в порт.
Организовать такой таймер можно в режиме ядра, то есть в теле драйвера.
А писать в порт можно так:

void CRs485::WriteByte(ULONG addr, UCHAR value)
{
WRITE_PORT_UCHAR((PUCHAR)addr, value);
}
WRITE_PORT_UCHAR - функция DDK.
где addr - адрес порта в который пишете
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Таймер: интервал менее 1 миллисекунды.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]