| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Медленная работа DOS на современных компьютерах |
| Автор: Zavlab 2.2.2006, 14:18 | ||
| Здравствуйте. Решил я систему передачи сделать по своей квартире на основе LPT-порта. Задача рубится на корню, когда я тестовым способом обнаружил очень низкую скорость работы программы. За 55мс обычный счетчик успевает досчитать до 30000 (счетная частота при этом составляет 540кГц), а если с выводом на LPT, то частота падает в 2 раза: счетчик досчитавает до 15000, что есть эквивалентом 270кГц на выходе порта. Программу упростил до предела, но чуда не стало. Ниже ее исходник
Суть: идет циклический счет (переменная L) от 0 до победного, когда-нибудь возникает прерывание с интервалом 55мс или 0,055с в котором значение L выводится на экран и L:=0. За каждый проход цикла Repeat Until в порт LPT[$378] выводится число b (локальный счетчик). Переменная del содержит среднее количество до которого успевается возвыситься L. Переменная l_Const содержит время в секундах за которое происходит 1 проход цикла. (процедуры mouse отключены) Среда Windows98 без графической оболочки, загружается с дискетки, Среда разработки Turbo Pascal 7.0 Оборудование Atlon 1900+, частота шины 333МГц. Подозрения: проблема аппаратная, специально для DOSa & K работает низкочастотный блок. (Где бы там перемычку передвинуть). Этот ответ всего лишь версия. Жду Ваших мнений... |
| Автор: Romikgy 2.2.2006, 14:50 |
| Сабж здесь не причем, при быстром проце и дос летает, а вот работа с лпт портом, у тя слишком простая, есть спец режимы параллельного порта , где скорости достигаются вполне нормальные, а что касается сабжа, то в досе проц работает в реальном режиме, получается, точно не вспомню, толи 286 толи 186 проц но с тактовой, твоего проца, а винда переводит проц в защищенный режим, и там уже своя петрушка |
| Автор: Snowy 2.2.2006, 14:51 |
| http://www.piafi.ru/library/timeslc.zip поможет. |
| Автор: armageddon 2.2.2006, 19:02 |
| скорей сего проблема не в проге, а в самом соеденении |
| Автор: Zavlab 4.2.2006, 10:28 | ||
Дорогие Romikgy, Snowy, armageddon обращу Ваше внимание на свою цитату
Я думаю, что если бы "обычный счетчик " успевал бы досчитать до 5 миллиардов (или больше), то вопрос был бы к LPT, а так к (?!) к процессору. Сообщу также, что медленная работа замечена и у других программ (Volkov, sirena и моих разработок использующих процедуру delay (хоть свою пиши)). По поводу других режимов LPT - тоже интересно. http://www.piafi.ru/library/timeslc.zip уникальная разработка, но в данном случае задача как раз наоборот. Получаю знания . . . |
| Автор: Snowy 4.2.2006, 16:49 |
| delay всегда была глючной. Она никак не зависит от времени. На разных компьютерах дает совершенно разные интервалы. Попробуй найти в сети альтернативный модуль Crt. Хотя для DOS нет универсального решения без перепрограммирования таймера. |