![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 | |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]() Цитата:
Позволю себе не согласиться с вами. Вам для ознакомления тоже кое-что почитать посоветую http://www.dtf.ru/articles/read.php?id=39888 |
|
![]() |
![]() |
![]() |
#22 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
ОС - Windows XP sp2. Частота процессора 1,2 ГГц.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 21.01.2014 в 11:12. |
|
![]() |
![]() |
![]() |
#23 | |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#24 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
В качестве буферного регистра, используется микросхема К555ИР32. Это четырёзразрядный регистр имеющий четыре ячейки с независимой записью и считыванием. Он позволяет устранить задержки неопредлённости ОС.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 21.01.2014 в 15:03. |
|
![]() |
![]() |
![]() |
#25 | |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#26 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
![]() |
![]() |
![]() |
#27 |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]()
И с частотой 32 кГц вы отправляете данные в порт? Тютелька в тютельку-вы уверены в этом? А по какому событию? По таймеру? И есть ли обработка действий пользователя в вашем приложении? Меню какое, кнопочки? И откуда вы взяли эту частоту отправки данных 32 кГц? На сколько я понял,почитав форумы событие OnIdle - срабатывает тогда, когда пользователь не делает никаких действий. А если у меня будет меню-с которым будет работать пользователь. Ну да это ладно - можно запретить юзеру что-то делать в самые ответственные моменты.А вот как быть с отправкой данных на второй порт ежесекундно. тут даже с помощью таймера прийдётся неявно использовать второй поток-а это чревато большими потерями на переключении планировщиком контекста потоков((
Последний раз редактировалось TELEPUZ; 21.01.2014 в 17:39. |
![]() |
![]() |
![]() |
#28 | ||
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
Цитата:
Обмен через LPT.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 21.01.2014 в 19:54. |
||
![]() |
![]() |
![]() |
#29 |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]()
Большое спасибо за все ваши советы. Но меня всё равно гложут реальные сомнения((( В той ссылке, что Вы мне предложили http://global-katalog.ru/item3832.html есть следующая информация:
Система ОСРВ предсказуема в том смысле, что время, затрачиваемое на определенную работу, не должно превышать заранее установленного ограничения. Время реакции на прерывание (interrupt latency) состоит в способности своевременной реакции на внешние события (обычно не превышает 2-8 мкс). Время переключения контекста используется для передачи управления от процесса к процессу, от потока к потоку (находится в пределах 80 - 160 мкс). Время реакции планировщика (scheduling latency) представляет собой задержку активизации процесса после отработки прерывания (находится в пределах 4- 16 мкс). А вы утверждаете, что у WindowsXP, которой ой как далеко до ОСРВ, квант времени выделяемый планировщиком 8-10 мкс. Что-то тут явно не так((( И дабы окончательно развенчать миф о том, что можно написать ПО, работающее с проходной(пример будет касаться исключительно моей задачи), которое будет обмениваться данными с контроллером через COM-порт с Кгц-овой частотой приведу простейший расчёт. скорость приёма данных моего порта 9600 бит/сек. Грубо говоря приём 1-го бита данных -это 0.1 мс. Мне нужно принять 12 байт-96 бит, плюс ещё стоповые - грубо говоря 100 бит. это уже в районе 10 мс!(миллисекунд)! Я уже не говорю обо всех остальных задержках на переключение контекстов потоков(какими малыми они бы не были), дополнительные вычисления моей программой, затраты на обработку тиков таймера, в обработчике которого шлю данные на второй COM-порт и делаю ещё кое-какие вычисления(у меня через второй порт светодиодное табло работает)! Что скажете? Последний раз редактировалось TELEPUZ; 21.01.2014 в 21:46. |
![]() |
![]() |
![]() |
#30 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
А то и скажу. Вы неправильно понимаете работу COM-порта. 100 бит, он принимает в синхронном режиме и Ваша программа к этому не имеет никакого отношения. Это делается на аппаратном уровне. Эти 12 бат, запишуться в буфер, который задан при инициализации. Потом, этот буфер, можете обрабатывать хоть пол-часа. Если это проходная, то задержка обработки в несколько миллисекунд совершенно не существенна. Человек, даже моргнуть за это время не успеет, а не то, что там с карточкой что-то сотворить. В общем, читайте инструкцию к терминалу и не занимайтесь ерундой.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование LPT-порта на DELPHI | Vova777 | Компьютерное железо | 5 | 05.02.2011 19:27 |
Программирование LPT-порта на DELPHI | Vova777 | Общие вопросы Delphi | 0 | 31.01.2011 17:37 |
Программирование последовательного порта | Funker | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 27.05.2010 02:20 |
программирование lpt порта | alexs2141 | Общие вопросы Delphi | 5 | 07.06.2008 17:10 |