Форум: "Система";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизТолковый народ! Помогите с выводом на 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c