Форум: "Начинающим";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
ВнизКак сделать проверки через каждые 20 микросекунд? Найти похожие ветки
← →
Who_is_you? © (2009-12-28 10:02) [0]Удалено модератором
Примечание: спам
← →
Сергей М. © (2009-12-28 10:06) [1]Какие такие "проверки" ?
Что за блох ты там ловишь в не-ОСРВ ?)
Подробнее ..
← →
KilkennyCat © (2009-12-28 10:06) [2]паяльник в руки и вперед. либо забываем про виндоус и ставим че-нить реалтайм.
← →
Б (2009-12-28 10:12) [3]Может так?
procedure TForm1.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
begin
If (GetTickCount - FT > 200) then
begin
FT:= GetTickCount;
Button1.Visible:= not Button1.Visible;
end;
Done:= False;
End;
← →
Jeer © (2009-12-28 10:18) [4]
> Б (28.12.09 10:12) [3]
Разницу между микро- и миллисекундами до сих пор не понял ?
← →
Б (2009-12-28 10:20) [5]> Разницу между микро- и миллисекундами до сих пор не понял ?
Х.З.
http://delphimaster.net/view/2-1261824983/
← →
Who_is_you? © (2009-12-28 10:26) [6]Подробнее значит так:
Получаю по LPT данные с частотой 20 микросекунд и может меньше, с проверкой регистра статуса.
Если получаю, ориентировочно, не более 150 байт, то получаю все точно согласно протокола. При большом потоке данных, например в цикле while, Windows XP периодически прерывает получение данных и вставляет какую-то абракадабру.
А на прерывания по LPT виндоза почему-то ругается.
Виртуальность XP - это не Windows 98.
← →
sniknik © (2009-12-28 10:29) [7]> Х.З.
1 GetTickCount = 1 миллисекунд = 1000 микросекунд
← →
sniknik © (2009-12-28 10:30) [8]> Получаю по LPT данные с частотой 20 микросекунд и может меньше
врать не хорошо.
← →
Anatoly Podgoretsky © (2009-12-28 10:36) [9]
> Who_is_you? © (28.12.09 10:26) [6]
Объясни более подробно задачу и также требования к стабильности периода, к чему приведет пропуск очередных 20 мксек. В общем это не возможно, но может поможет микроконтроллер с точной фиксацией, но отложеной обработкой.
← →
Anatoly Podgoretsky © (2009-12-28 10:38) [10]
> Что за блох ты там ловишь в не-ОСРВ ?)
Вопрос спорный и без определения терминов может и неверный. Кроме того Виндоус они разные бывают, ты видимо в расчет не брал XP Embeded
← →
Who_is_you? © (2009-12-28 10:38) [11]В данный момент реально данные идут с частотой в 2кГц, но нужно увеличить в 5 раз.
← →
Сергей М. © (2009-12-28 10:43) [12]
> Who_is_you? © (28.12.09 10:26) [6]
Вот дались тебе эти "прерывания")
ОС сама с ними разберется и исправно/вовремя передаст/примет данные порта без твоего вмешательства.
Все что от тебя требуется - открыть порт, получить хендл и работать с ним как с хендлом обычного файла с последовательным доступом:
hMyLPTPortFile := CreateFile("LPTn", ...);
..
bResult := ReadFile(hMyLPTPortFile, ...); //чтение из порта
..
bResult := WriteFile(hMyLPTPortFile, ...);//запись в порт
← →
KilkennyCat © (2009-12-28 11:11) [13]
> В данный момент реально данные идут с частотой в 2кГц, но
> нужно увеличить в 5 раз.
а в начале ты хотел получать более чем в 50 раз. Тоже проблема с порядками?
И потом, хреново озвученная задача подразумевает хреновый ответ.
По лпт можно прогнать легко мегабита 2 в секунду, вроде бы. Тебе надо получить кучку данных быстро, или тебе надо среагировать на каждый бит моментально? Если первое - стандартная работа с лпт и прочими портами. Если второе - делфи и винду в топку.
← →
Anatoly Podgoretsky © (2009-12-28 11:30) [14]> KilkennyCat (28.12.2009 11:11:13) [13]
Виндоус нормально реагирует на мегабиты, успевает обработать видеопотоки
← →
KilkennyCat © (2009-12-28 12:07) [15]
> успевает обработать видеопотоки
Да. Только с задержкой, и опять же, там несколько иная задача. А какая здесь задача неизвестно.
← →
Anatoly Podgoretsky © (2009-12-28 12:30) [16]> KilkennyCat (28.12.2009 12:07:15) [15]
Так автор партизан.
← →
Who_is_you? © (2009-12-28 13:53) [17]Во-первых, не партизан.
А во-вторых:
- все прозрачно: данные(по 14 байт) с частотой в 10Кгц(min)-30Кгц(max) нужно получить по LPT без пропуска байта.
А можно как сом-портом использовать как-то:
SetCommState
DCB.EvtChar:=chr(10);//задание символа для флага: ( 0x0A )
//ставим маску - "по пришествии определенного символа"
SetCommMask(hCom,EV_RXFLAG);
← →
Сергей М. © (2009-12-28 14:22) [18]
> Who_is_you? © (28.12.09 13:53) [17]
Кулибин, почитай сюда:
http://www.citforum.ru/operating_systems/windows/parp_win/
← →
DVM © (2009-12-28 15:47) [19]
> Anatoly Podgoretsky © (28.12.09 10:38) [10]
> XP Embeded
она почти ничем не отличается от стандартной XP. Embedded - это набор - сделай сборку Windows себе сам.
← →
Who_is_you? © (2009-12-29 10:05) [20]Сергей М.
Спасибо за статью. Есть над чем поработать.
И ко ВСЕМ.
Был бы рад ещё подобной информации или готовых примеров.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c