Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Толковый народ! Помогите с выводом на LPT массива данных...   Найти похожие ветки 

 
Pashka_Cool ©   (2004-03-06 16:05) [0]

Прочитал все сабжи по работе с LPT, но ответа на свою проблему не нашёл. :( Мне необходимо выводить массив данных на порт с максимальной скоростью, но не кодом через цикл, а как-то автоматом, сбросив массив в какой то буфер, из которого эти данные будут циклично выбрасываться в порт, пока я по таймеру не обновлю этот массив. После чего всё снова будет выводиться. Если это делать обычным кодом в Делфе (я пользуюсь выводом посредством функций WinIo.dll), то естественно всё подвисает, пока цикл не отработает своё. Даже таймер не срабатывает, что бы прервать цикл. Да ещё и присутствует некоторая нестабильность вывода данных (я формирую ШИМ через LPT). Выручайте братцы!


 
тихий вовочка ©   (2004-03-07 08:18) [1]

Выход для тебя один - пиши vxd или sys драйвер, у которого свой буфер. И реализуй в нем все - работу с LPT и чтение из буфера. А программа соответственно будет только через DeviceIOControl передавать адрес начала буфера, команду сливать и команду завершать слив. Можешь сделать, чтобы драйвер после сливания буфера ставил Event тогда программа через WaitForSingleObject будет знать, когда драйвер отработает. Это ожидание в отдельный поток - и ничего у тебя не подвисает.


 
N169   (2004-03-07 09:52) [2]

Драйвер как таковой не поможет - у Windows проблемы во временной области.
Тут нужно решение на базе микроконтроллера


 
тихий вовочка ©   (2004-03-07 16:45) [3]

Ну как это не поможет? У меня такая реализация сливает блоки по 64 байта с частотой 350 Гц. Все дело в Ring0


 
N169   (2004-03-07 19:56) [4]

Интервал стабилен или в среднем? Работает непрерывно или пачками по 64 байта?
Если стабилен и непрерывно, и в Wdm драйвере, и через LPT, тогда поделись пожалуйста с народом решением, мы все скажем спасибо :)
(И я признаю гением)


 
Pashka_Cool ©   (2004-03-09 11:29) [5]

Мужики! Я как раз и спрашивал о решении на базе контроллера, а именно работы с LPT в  DMA режиме. Только вот в справочнике кроме сухой теории про этот режим нет никаких примеров. Этот режим мне бы подошёл, но вот как к нему подобраться - я и не в курсах. Вот может кто посвятит в детали,- буду супер доволен. Даже если этот режим и не даст стабильной работы для ШИМ-а, то это не беда, главное, чтобы работа была автономная и не медленнее, чем 20 000 выводов в сек.


 
Dmitriy_G ©   (2004-03-09 16:46) [6]

Не знаю я, что такое драйвер, но я знаю что такое микроконтролер.
Если в качестве буфера (как ты сказал) использовать контролер, то пишешь в него массив, который он, сам по себе отправляет дальше. Ты же по таймеру обновляешь масив в микроконтроллере.
Вроде так, а если не так, то можете меня ударить )



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
8-1075737379
Igoryok
2004-02-02 18:56
2004.05.02
Замкнутую область зарисовать


11-1065766982
Deimos
2003-10-10 10:23
2004.05.02
Где найти пример модуля для работы с JPEG


14-1081781692
Undert
2004-04-12 18:54
2004.05.02
SSL сертификат


14-1081370659
ИМХО
2004-04-08 00:44
2004.05.02
Депортиво - Милан 4:0


6-1078042857
Ozone
2004-02-29 11:20
2004.05.02
TCP/IP