Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программа с СОМ под Windows
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
pil14
Требуется написать программу под Windows. Устройство подключено к компьютеру через СОМ порт. Программа должна с частотой не менее 100 гц посылать посылку по СОМ в утройство. Иногда устройство будет отвечать и в этом случае программа должна производить некоторые операции и выводить их на экран. Я пробывал реализовать следующим образом: создал поток в котором в цикле с помощью функции QueryPerformanceCounter определяю задржки в 10мс и соответственно когда требуется пишу данные в СОМ. НО при такой реализации т.к. цикл постоянно молотит загрузка процессора на 100% и хотелось бы этого избежать. Надеюсь что-нибудь посоветуете.
_pv
Цитата(pil14 @ Feb 9 2012, 15:40) *
Требуется написать программу под Windows. Устройство подключено к компьютеру через СОМ порт. Программа должна с частотой не менее 100 гц посылать посылку по СОМ в утройство. Иногда устройство будет отвечать и в этом случае программа должна производить некоторые операции и выводить их на экран. Я пробывал реализовать следующим образом: создал поток в котором в цикле с помощью функции QueryPerformanceCounter определяю задржки в 10мс и соответственно когда требуется пишу данные в СОМ. НО при такой реализации т.к. цикл постоянно молотит загрузка процессора на 100% и хотелось бы этого избежать. Надеюсь что-нибудь посоветуете.

добавить, Sleep(5) сразу после отсылки данных.
kovigor
Цитата(pil14 @ Feb 9 2012, 12:40) *
Надеюсь что-нибудь посоветуете.


Вот, еще вот это гляньте:

http://www.realcoding.net/article/view/2416
Demeny
Можно использовать функцию SetWaitableTimer и поток синхронизировать по хэндлу таймера, заданному первым параметром, в этом случае поток будет просыпаться только через заданное время.
А можно поступить совсем просто - изучите функцию SetCommTimeouts, порт с помощью неё можно сконфигурировать таким образом, что функция ReadFile будет периодически возвращать управление, даже если никаких данных на вход порта не поступало, тогда можно синхронизировать приёмный поток функцией ReadFile и передавать данные.
Genadi Zawidowski
В проекте терминалки во вложении Вы найдёте почти всё, что Вам надо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.