Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2014, 20:47   #11
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Поищите вот эту книжечку:
А.Я. Архангельский, М.А. Тагин
Приёмы программирования с С++ Builder
Механизмы Windows, сети.

В ней очень подробно описана работа с COM-портами в синхронном и асиннхронном режимах. Приводится код программ. Удачи.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.01.2014, 20:50   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
По поводу изменения электрических схем, либо перепрограммирования контроллера на устройстве сопряжения-не вариант((( Проще ставить DOS и всё будет работать
так ставьте, не плачьтесь по форумам тогда. Вам дан четкий совет как не привязываться к ОС вообще и использовать ее просто как верхний уровень. В железе вашем как раз ничего менять не придется. Но вы как то мимо ушей.

Цитата:
По поводу сомнений в 4 мс - это действительно так. Если интересно - могу показать кусочек документации!
ой спасибо, не надо одолжений. Это не нам нужно, а вам.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.01.2014, 21:30   #13
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
так ставьте, не плачьтесь по форумам тогда. Вам дан четкий совет как не привязываться к ОС вообще и использовать ее просто как верхний уровень. В железе вашем как раз ничего менять не придется. Но вы как то мимо ушей.
Извините, но я не понял, что вы имеете в виду под этим - "Вам дан четкий совет как не привязываться к ОС вообще и использовать ее просто как верхний уровень. В железе вашем как раз ничего менять не придется. Но вы как то мимо ушей."?
TELEPUZ вне форума Ответить с цитированием
Старый 20.01.2014, 21:42   #14
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Поищите вот эту книжечку:
А.Я. Архангельский, М.А. Тагин
Приёмы программирования с С++ Builder
Механизмы Windows, сети.

В ней очень подробно описана работа с COM-портами в синхронном и асиннхронном режимах. Приводится код программ. Удачи.
Большое спасибо, но в общем-то проблем в программировании COM-порта у меня нету никаких. Я знаю, как с ним работать начиная с Assembler и С++, и заканчивая .Net. Вопрос в том - возможно ли написать ПО под Windows XP для работы с внешним устройством, которое(ПО) могло бы обмениваться с этим устройством за 4мс(миллисекунды) информацией - фактически в режиме реального времени. Дело в том, что я написал болванку - запустил, потестил -и у меня сложилось такое впечатление, что моя программа не успевает отработать за 4 мс(считать пакет с порта и выставить соответствующий сигнал на линию). И это вроде как логично - WindowsXP не предназначена для таких задач(что следует из организации ОС - планировщик задач выделяет своим потокам интервалы 10-130 мс и вероятность того, что при приходе данных - моя программа отработает за 4 мс небольшая, на сколько я понимаю).
TELEPUZ вне форума Ответить с цитированием
Старый 20.01.2014, 21:59   #15
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

То что не поняли, заметно. Повторяю в третий раз: покупаете, берете, одалживаете микроконтроллер/ПЛИС, скажем с аппаратным USB стеком на борту, можно и эмуляцией, пишите под МК всю работу с "требовательным" датчиком/периферией. Общение/получение данных по виртуальному порту over USB о произведенных действиях пишите программкой в Windows. Еще не ферштеен?

Цитата:
могло бы обмениваться с этим устройством за 4мс(миллисекунды) информацией - фактически в режиме реального времени.
как думаете, чему соответствует скорость обмена 921600 бит/сек ...а два мегабита, четыре? Сколько это миллисекунд на бит?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.01.2014, 22:18   #16
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
То что не поняли, заметно. Повторяю в третий раз: покупаете, берете, одалживаете микроконтроллер/ПЛИС, скажем с аппаратным USB стеком на борту, можно и эмуляцией, пишите под МК всю работу с "требовательным" датчиком/периферией. Общение/получение данных по виртуальному порту over USB о произведенных действиях пишите программкой в Windows. Еще не ферштеен?

как думаете, чему соответствует скорость обмена 921600 бит/сек ...а два мегабита, четыре? Сколько это миллисекунд на бит?
Уважаемый raxp, спасибо за ваш совет по поводу покупки микроконтроллера, но без обид - если бы этот вариант рассматривал -навряд ли писал бы на этом форуме свои вопросы. По поводу скоростей передачи данных -отвечу так: касательно моей задачи -у меня 9600 бод скорость сериал порта. Но это вовсе не критично, даже если бы скорость порта была бы 921600 бит/сек ничего бы не изменилось ровным счётом! Почему приложение из WindowsXP не успевает обменяться за 4 мс с устройством информацией? Потому, как есть такое понятие как вытесняющая многозадачность в ОС WindowsXP. Есть такое понятие как планировщик этих задач, контекст потоков и переключение контекстов потоков. И даже более того - планировщик в WindowsXP осуществляет переключение потоков(time span) не чаще чем один раз в 10 мс и выделяет ему процессорное время(time slice - 130 мс, если этот поток поделится этим временем, т.е. выполнит свой код раньше - то меньше, но точно не меньше 10 мс)! Вот в чём вся загвоздка! Но это на сколько понимаю WindowsXp я! И у меня возникает вопрос-можно ли как-то обойти это ограничение без использования каких-то дополнительных устройств! Понимаю, что вряд ли! Но хочется услышать мнение экспертов(понимаю что могу ошибаться в чём-то)! Вот и всё. А за ваше активное участие в обсуждении данного топика лично вам большое спасибо!
TELEPUZ вне форума Ответить с цитированием
Старый 20.01.2014, 22:23   #17
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
В 99.99% нельзя...
Что-то мне подсказывает что это самый адекватный ответ на мой вопрос!
TELEPUZ вне форума Ответить с цитированием
Старый 20.01.2014, 23:24   #18
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Мне то не надо рассказывать , ознакомтесь:
http://programmersforum.ru/showthread.php?t=208930
http://forums.inscriber.com/viewtopic.php?t=288
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.01.2014, 10:10   #19
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
Мне то не надо рассказывать , ознакомтесь:
http://programmersforum.ru/showthread.php?t=208930
http://forums.inscriber.com/viewtopic.php?t=288
Ссылки - то что доктор прописал. Дабы закрыть тему хотелось бы подвести итоги: иными словами дабы обеспечить достаточно надёжную работу ПО(в WindowsXP) через последовательный порт с оборудованием, требующим гарантированного отклика от ПК(максимум в 4 мс) - придётся ставить RTX модуль и писать приложение под него? Других более простых вариантов нету - т.е. сама по себе XP в принципе не предназначена для таких задач? Хотелось бы ваше мнение услышать -вижу, что не одну бяку съели в этой области
TELEPUZ вне форума Ответить с цитированием
Старый 21.01.2014, 10:21   #20
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от TELEPUZ Посмотреть сообщение
Уважаемый raxp, спасибо за ваш совет по поводу покупки микроконтроллера, но без обид - если бы этот вариант рассматривал -навряд ли писал бы на этом форуме свои вопросы. По поводу скоростей передачи данных -отвечу так: касательно моей задачи -у меня 9600 бод скорость сериал порта. Но это вовсе не критично, даже если бы скорость порта была бы 921600 бит/сек ничего бы не изменилось ровным счётом! Почему приложение из WindowsXP не успевает обменяться за 4 мс с устройством информацией? Потому, как есть такое понятие как вытесняющая многозадачность в ОС WindowsXP. Есть такое понятие как планировщик этих задач, контекст потоков и переключение контекстов потоков. И даже более того - планировщик в WindowsXP осуществляет переключение потоков(time span) не чаще чем один раз в 10 мс и выделяет ему процессорное время(time slice - 130 мс, если этот поток поделится этим временем, т.е. выполнит свой код раньше - то меньше, но точно не меньше 10 мс)! Вот в чём вся загвоздка! Но это на сколько понимаю WindowsXp я! И у меня возникает вопрос-можно ли как-то обойти это ограничение без использования каких-то дополнительных устройств! Понимаю, что вряд ли! Но хочется услышать мнение экспертов(понимаю что могу ошибаться в чём-то)! Вот и всё. А за ваше активное участие в обсуждении данного топика лично вам большое спасибо!
В свих изысканиях, Вы ошиблись буквально на три порядка. Квант времени выделяемый планировщиком 8-10 мкс. Как говорится, почувствуйте разницу. А для просветления головы, советую почитать вот эту статью.
Если решать Вашу задачу в Борланд С++, то можно воспользоваться оператором:
Код:
Application->OnIdle = IdleLoop;
И его обработчиком:
Код:
void __fastcall TFormMain::IdleLoop(TObject*, bool &done)
{
done = false;// обязательно. Иначе будет срабатывать только при движении мышки.
..............
}
Скорость опроса, примерно 100-250 мкс. Надеюсь это Вас устроит?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 21.01.2014 в 10:38.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование 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