![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Duron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 24.2.2006 Репутация: нет Всего: нет |
Добрый день,уважаемые господа! Всех с праздником!
У меня вопрос. Если можете, помогите. Устройство на СОМ-порту выдаёт сигналы с миллисекундными задержками.Я их вынимаю РидФайлом по одному. Нужно точно рассчитать время между приходами этих сигналов. Заранее спасибо. С уважением Александр. [email protected] [email protected] |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 4 Всего: 67 |
возможно завести статическую переменню и считать разницу между двумя приёмами сигналов...
-------------------- СУВ, Partizan. |
|||
|
||||
| Lotrex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 9.2.2006 Где: Казань Репутация: 2 Всего: 3 |
Такие штучки ИМХО, в dos-e лучше делать, если хочешь поточней посчитать время между приходом сигналов.
|
|||
|
||||
| Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Или делать GetTickCount(). Должно точно получться.
-------------------- Never again... |
|||
|
||||
| Lotrex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 9.2.2006 Где: Казань Репутация: 2 Всего: 3 |
Скорей всего, в винде вообче ничего не выйдет...
Вот такую картиночку видели(это win98)? ![]() ИМХО, тут надо для начала размер входного буфера поставить 1 байт (но и то не факт, что сразу по приходу байта в буфер приложение будет оповещено). Другое дело в DOS-е - написал программу обработки прерывания - и пжалста, как она вызвалась - значить, байт пришел Это сообщение отредактировал(а) Lotrex - 27.2.2006, 22:42 |
|||
|
||||
| Lotrex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 9.2.2006 Где: Казань Репутация: 2 Всего: 3 |
Вот, Duron, special for you
Старенькая DOS - программа (исходник): http://jamwarrior.narod.ru/sources/com_inp.tar.gz Там есть файлик readme.txt, он на русском, но в dos-кодировке - надеюсь, расшифруете. Пока понятия не имею, как Вашу задачу под Win решить... Это сообщение отредактировал(а) Lotrex - 5.3.2006, 21:32 |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 4 Всего: 67 |
он же говорит, что вынимает их ридфайлом....
можно использовать ф-ю timeGetTime() из mmtime.lib Это сообщение отредактировал(а) Partizan - 5.3.2006, 21:53 -------------------- СУВ, Partizan. |
|||
|
||||
| sdeniss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 3.3.2006 Репутация: нет Всего: 1 |
Устройство сигналы RTS выставляет?
|
|||
|
||||
| Lotrex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 9.2.2006 Где: Казань Репутация: 2 Всего: 3 |
Ридфайлом вряд ли в принципе можно эту проблему решить. По той причине, что не известен момент прихода байта в буфер (это во первых). Где гарантия, что тот байт (если даже он один) был помещен в буфер в тот момент, когда функция нам вернула его значение? Windows - система многозадачная
Что дает timeGetTime?
Она возвращает время в миллисекундах с момента старта Windows. И ничего более. Она не сообщает времени с момента прихода байта в буфер com-порта. Если есть такая ф-ция в WinAPI - плз, в студию! Во-вторых, предложенная прога анализирует состояние линий (счас уж не помню, каких Я думаю, в DOS-е точнее получится измерение задержек. Если еще переопределить процедуру обработки прерывания таймера и увеличить его частоту - можно повысить точность до десятых долей миллисекунд (а может, и еще точнее). Правда, под виндами такая прога точно не заработает, а часы вообще встанут (ну, если их в своей процедуре не переставлять |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |