1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Скоростной доступ к Lpt-порту в Delphi.

Тема в разделе "Delphi - программирование", создана пользователем Vetka, 10 ноя 2007.

Статус темы:
Закрыта.
  1. Vetka

    Vetka Гость

    Репутация:
    0
    Подскажите, плиз, как в Delphi выводить импульсы длительностью менее 1 мкс в LPT-порт? Интервалы стандартного таймера не укорачиваются меньше нескольких десятков мкс. Пробовал использовать бесконечный цикл, но в этом случае интервалы очень зависят от загруженности процессора. С портом прога общается при помощи библиотеки InPOut32.dll (скачал из инета).
     
  2. Silver Wind

    Silver Wind Гость

    Репутация:
    0
    Гарантировано никак. Windows не является операционной системой реального времени. Не факт что твой процесс будет получать необходимые для этого ресурсы процессора.

    Если необходима подобная точность/скорость работы с сигналами, то средствами Windows ты ее не добьешься.

    И, кстати, не факт что все LPT-порты поддерживают режим обмена на такой скорости.


    Ну и по поводу таймеров.
    Стандартный Windows-таймер имеет дискретность порядка 50мс. Т.е. даже если указать интервал в 1 мс - всеравно получишь примерно 50мс. В добавок ко всему прочему сообщения WM_TIMER имеют очень низкий приоритет и могут теряться в очереди при большой загрузке.

    Подключив модуль MMSystem, можно использовать более точный, с меньшей дискретностью, мультимедийный таймер.
    В таком случае, в зависимости от задачи, может помочь использование мультимедийного таймера вкупе с потоком имеющим повышенный приоритет. Но даже такой подход не может гарантировать, что какя-нибудь запущенная параллельно программа не сожрет так необходимые тебе ресурсы.
     
  3. zubr

    zubr Гость

    Репутация:
    0
    Для: Vetka
    Я когда то писал программатор для микроконтроллеров. Там тоже необходимы были малые интервалы времени. Для этого делал следующее:
    1. Программа выдавала предупредительное сообщение пользователю не трогать мышь, клавиатуру, другие приложения.
    2. Устанавливал высокий приоритет для своего приложения на период процесса программирования.
    3. Перед запуском процедуры программирования микроконтроллера проводился программный тест определения количества времени на какое то количество циклов функции GetTickCount. То есть в зависимости от состояния системы, время на n-ое количество циклов было разное. Исходя из полученного времени, определялось количество циклов для проседуры Delay.
     
  4. onyx

    onyx Гость

    Репутация:
    0
Загрузка...
Похожие Темы - Скоростной доступ Lpt
  1. novikov433
    Ответов:
    5
    Просмотров:
    150
  2. R4z0R
    Ответов:
    1
    Просмотров:
    48
  3. PingVinich
    Ответов:
    3
    Просмотров:
    156
  4. Vander
    Ответов:
    8
    Просмотров:
    766
  5. animi
    Ответов:
    2
    Просмотров:
    1.040
Статус темы:
Закрыта.

Поделиться этой страницей