Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
ну дык если пальцы гнешь - объясни на пальцах)))
Отправлено
basilmak
(178.176.135.66)
13 марта 2011, г. 11:31
В ответ на:
Фсем зачОд по свободному трактованию принцЫпов работы венды и ком портов ея. Особливо Коляну аргументированно аргументировавшему аргументированные аргУменты в беседе с Базилмаком ;)
отправлено
Гудвин
13 марта 2011, г. 01:50
Составить ответ
|
Вернуться на конференцию
Ответы
А вообще (еще в экпериментах с win NT) удавалось получить более-менее приемлемый результат только использую ММ таймер (1мс) и задирая приоритет.
-
Гудвин
(
пустое
, 13.03.2011, 12:45:27
178.204.128.21
)
Ну для начала дельфийский таймер vs поток. Таймер в дельфях это ни что иное, как тот же самый отдельный поток - простой цикл и в нем системная функция Sleep(). Я тоже из-за лени его постоянно юзаю ;) Никто из вчерашних секарей не упомянул ни про драйвер COM порта, в котором и варится вся каша, ни про DCB. А оно как раз там все и настраивается. Выбирать из COM порта по одному байтику - садо-мазохизм. Драйвер ядра по прерываниям (и FIFO) работает конечно быстро. Но все остальное юзается только через системные вызовы. И что там Колян ждет с помощью ВайтФорСинглОбжект весьма непонятно. В драйвере COM порта есть куча настроек для системного ПОЛЛИНГА. Хочется прерываний - пиши дрова...
-
Гудвин
(
пустое
, 13.03.2011, 12:08:56
178.204.128.21
)
И непонятно, зачем прерывания, если драйвером предусмотрены функции обратного вызова.
-
Юрий_СВ
(
пустое
, 13.03.2011, 14:12:59
213.5.199.158
)
папатропней, плиз)
-
basilmak
(
пустое
, 13.03.2011, 14:16:38
178.176.136.107
)
Я неверно выразился. Имел в виду механизм обратного вызова для извещения об окончании (completion notification callback mechanism)
-
Юрий_СВ
(1662 байт, 13.03.2011, 16:59:23
213.5.199.158
)
В простых (с точки зрения обмена) "поделках" по 1 байту может и "мазохизм". А в более ответственных - приём по 1 байту в отдельном потоке - самое оно. Взаимная проверка работоспособности ПК и внешних контроллеров.
-
Юрий_СВ
(
пустое
, 13.03.2011, 14:03:47
213.5.199.158
)
ну я так всё и описал вчера внутри вопроса...
-
basilmak
(
пустое
,
ссылка
, 13.03.2011, 12:51:2
178.176.136.107
)
Только вот с потоком главного окна он, сцуко, норовит синхронизироваться. Колян правильно сказал - если в главном окне зациклить что-нить наглухо, то и таймер встанет. Другое дело, что никто так под винды не пишет.
-
Гудвин
(
пустое
, 13.03.2011, 13:05:36
178.204.128.21
)
необязательно наглухо, можно просто относительно долго чтото делать, прорисовки какиенить. Эту ошибку допускают почти все кто имея микроконтроллерный начали стали писать для винды не ознакомившись с ее особенностями, таймер-значит прирывание и выполняется сразу))
-
колян безпарольный
(
пустое
, 13.03.2011, 13:17:27
193.200.150.152
)
Не в ту сторону смайлик. Убил бы того писателя, кто Винду лабал.
-
Крок
(
пустое
, 13.03.2011, 20:23:6
188.123.248.236
)
йа так скажу- всякой работе свой инструмент. Винда гениальная вещь, устраивающая 99% пользователей. А те кого не устраивает должны пользоваться другими продуктами, не пилить же рессору пилочной для ногтей в самом деле
-
колян безпарольный
(
пустое
, 13.03.2011, 21:01:29
193.200.150.152
)
Такбля эта добрая мысль приходит в голову уже после столкновения оной с асфальом действительности...
-
Крок
(
пустое
, 13.03.2011, 22:19:49
188.123.248.236
)
ну в любой книжке по Дельфи всегда написано что "таймер" гарантирует как EMS-почта в России... А без зависонов винда не винда - в буфере то всё будет - ничо н пропадет если размер верно выбран...
-
basilmak
(
пустое
, 13.03.2011, 13:56:44
178.176.136.107
)
то что оно в буфере будет никто и не спорит, а вот успеешь ли ты ответить эт другой вопрос. Многомастерные протоколы с временным арбитражем реализовать даже в потоке непросто, а уж в таймере класса диалога- надо быть гением.
-
колян безпарольный
(
пустое
, 13.03.2011, 14:04:19
193.200.150.152
)
покажи пальцем где я говорил про ВайтФорСинглОбжект, это раз. А два- дело не самой реализации таймера а в том что обработчик WM_TIMER это такая-же функция как и все остальные и выполняется последовательно со всеми остальными, и если одна из остальных притормозила то и обработчик бужет ждать.
-
колян безпарольный
(
пустое
, 13.03.2011, 12:32:5
193.200.150.152
)
Извини - с POV без попутал :)
-
Гудвин
(
пустое
, 13.03.2011, 12:38:26
178.204.128.21
)
Попутал он, понимаешь. А чем тебе вайт не угодил. COM порты в силу низкой используемой скорости делаю просто в потоке, а вот для сокетов обработка событий оказалсь незаменимой. Подумываю и порт так же переделать.
-
POV
(
пустое
, 13.03.2011, 12:50:44
91.203.67.71
)
Сокеты это другое дело - пакет пришел - генерится событие, пакет буферизуется системой и пр... С драйвером COM ПОБАЙТНАЯ работа получается через одно место...
-
Гудвин
(
пустое
, 13.03.2011, 13:00:18
178.204.128.21
)
Побайтная недопустима...
-
POV
(350 байт, 13.03.2011, 13:11:22
91.203.67.71
)
Это да - в него, сцуко, синхронизация VCL встроена...
-
Гудвин
(
пустое
, 13.03.2011, 12:37:14
178.204.128.21
)
А приемлемая скорость COM достигается только с помощью буферизации драйвера. Вывод - хочешь точные времянки - юзай снаружи что-нить начиная с mcs51 и т.д...
-
Гудвин
(
пустое
, 13.03.2011, 12:13:25
178.204.128.21
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru