|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.05.2011, 17:31 | #1 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 89
|
Счетчик импульсов через ком-порт
Собственно проблема такова.
К ком-порту подключено нестандартное уст-во. Мотор. Там есть геркончик. Мотором управляю через линии dtr, rts. На cts подвешен геркон. Если не дергать окно программы все ок. Начинаешь минимизировать-раскрывать пропускает импульсы с геркона. Пытался делать на разных компонентах. SerialNg - в отдельном потоке так и не запустил подсчет. RomanComPort - даже если в отдельном потоке, тот же эффект. |
18.05.2011, 20:32 | #2 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
cts ты опрашиваешь программно, поэтому как только твою программу обделяют вниманием процессора она начинает пропускать, программно здесь ни чем не поможешь, можно конечно просвоить процессу приоритет realtime но тогда все будет жутко висеть, (пробовал как то). пробуй изменить аппаратную часть, что ,s счет ввелся вне компа, хотя тут думаю нужно будет контроллером каким нить обзовестись.
Могу лишь пнуть в нужном направлении (ну или как получится)
|
18.05.2011, 20:58 | #3 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 89
|
Я не особо матерый в программировании, но мне казалось что можно как то и на програмном уровне все решить.
А нельзя чего нить типа апликатион процессмессаге на кнопку "минимизировать" приклеить? И еще вопрос чем можно заменить WaitCommEvent... Собственно там то идет около 500 импульсов в минуту, не так уж и много. Железо уже спаяно, не особо и охота переделывать. В схеме стоит ftdi 232rl, дальше все на ключах и опторазвязка. |
18.05.2011, 21:04 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Можно попробоат через прерывания обработку сделать.
Сам не пробовал, но как-то можно.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
18.05.2011, 21:12 | #5 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 89
|
Swarog, по барабану приоритет потока. Систему сильно не грузит, хотя и выставил реал тайм. А как прозёвывало импульсы так и продолжает. Но мне полюбому чего-то надо думать про замену waitcommevent. Ужасающая функция...
|
18.05.2011, 22:46 | #6 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
Про прерывания забудьте, если только не пишети под дос или нехотите создать свои драйвера.
z-wer можете выложить код потока где состояние считывается?
Могу лишь пнуть в нужном направлении (ну или как получится)
|
19.05.2011, 07:29 | #7 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 89
|
Swarog, я тож уже подумал про прерывания.
Что все это на уровне драйвера. Ну оно то можно че нить замутить, но стоит ли. Хотя я думаю что к ftdi они вроде как на офф сайте есть и наверное исходники фришные. Код потока чуть позже выложу, проект некоммерческий, под себя делаю. Могу и схему управления выложить, тож ничего секретного. Стандартная схема включения(по даташиту) через усби. |
19.05.2011, 07:33 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Выложи, я гляну. Возможно проще будет туда пару счётчиков впихнуть и не париться с прогой.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
19.05.2011, 10:37 | #9 | |
Пользователь
Регистрация: 03.03.2010
Сообщений: 89
|
Пример кода потока.
Используется только для проверки на корректность счета импульсов в отдельном потоке. Прошу сильно не бить, особенно по лицу. Маска события задана в свойствах компонента порта. Цитата:
|
|
19.05.2011, 10:45 | #10 |
Пользователь
Регистрация: 03.03.2010
Сообщений: 89
|
Если впихивать счетчик - пойдет под переделку всё железо.
Кроме релюх, оптопар и еще пары деталей все смд - раздраконить можно, но это уже второй вопрос. Плюс к этому придется еще как минимум rx задействовать. Написать код для какой нить атитини - это уже не для меня задача. Последний раз редактировалось z-wer; 19.05.2011 в 10:48. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Счетчик импульсов на LPT. Delphi | clone_ | Общие вопросы Delphi | 7 | 29.04.2011 01:29 |
Виртуальный ком порт и нестандартная скорость | Gumel | Компьютерное железо | 0 | 28.01.2011 15:25 |
Определенная последовательность импульсов на ком порт | antinup | C++ Builder | 3 | 27.05.2010 09:29 |
Ком-порт! | Gawwws | Microsoft Office Excel | 1 | 06.02.2010 20:40 |
Счетчик импульсов | stanik123 | Общие вопросы Delphi | 11 | 09.10.2009 10:10 |