1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
| surfacing |
12.02.2003 16:33
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 3 Репутация: 0 |
Здравсвуйте!
Мне нужно выставить в последовательный порт стробический сигнал. Т.е. выставляем "1 " ждем n-кол-во микро-секунд., затем выставляем в порт "0" и опять ждёём. Вопросы такие: 1. как выставить данные в последовательный порт? 2. как на паскале организовать задержку в 10 микро-секунд? (микро-секунда=10 в -6):;; мили= 10 в -3) Заранее спасибо всем знатокам ! |
| Vit |
12.02.2003 17:55
Сообщение
#2
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 156 Пол: Мужской Репутация: 0 |
2) Никак. Стандартная PC поддерживает удовлетворительно задержки лишь больше 10 милисекунд. Если меньше, то нужна специализированная железяка, контроллер...
PS. Можно извратиться и получить задержку в 1..10 милисекунд, но ничего хорошего не получится, погрешности будут очень большие и интервал будет заметно плавать. О более мелких интервалах говорить бесполезно, они меньше интервала системного таймера. Можно использовать тики процессора, но они тоже будут тоже давать погрешности порядка 1000-10000% -------------------- With the best regards Vit
Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой |
| surfacing |
13.02.2003 16:12
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 3 Репутация: 0 |
Ну а как выставить данные в последовательный порт?
|
| LEO |
17.02.2003 11:44
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 6 Репутация: 0 |
Пауза в мкс реализована в такой простой процедурке (работает даже под "Форточками"):
PROCEDURE DelayMks(Del:longint);assembler; |
| LEO |
18.02.2003 6:16
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 6 Репутация: 0 |
В дополнение ко вчерашнему (нужно было посмотреть):
Послать через регистр данных строб с такой частотой никак: даже при максимальной скорости это будет 6/115200 ~ 52 мкс. Но можно воспользоваться линиями RTS (7/4 ножки DP-9/25 ) или DTR (4/20 ножки) - они находятся в регистре контроля модема. Это будет выглядеть, примерно, так: CONST Леонид. |
| LEO |
4.03.2003 3:24
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 6 Репутация: 0 |
Уважаемый Алексей, по поводу Ваших вопросов:
1.WORD PTR обозначает только уточнение размерности: Del имеет длину 4 байта, а мы пересылаем его по кускам в 2 байта. Ассемблер, гад, недоверчивый и ему этот момент надо подтвердить. 2. в какое место в программе на паскале можно вставлять эту процедуру? В любое до первого обращения к ней. Желательно не вкладывать в другую процедуру. 3. и так же прошу более подробного разьяснеия (для полу-чайника) по поводу второй проги. Извиняюсь, там небольшая плюха: CONST Этот фрагмент будет гнать 50 КГц меандр по линии RTS (4 контакт на 25-штырьковом разъеме или 7 на 9-штырьковом) порта COM1, пока не будет нажата какая-либо кнопка. Массив BaseAddr перекрывает системную область памяти (кстати, доступ к ней разрешен и под "Форточками" - селектор 40h открыт для общего доступа), в которой находятся базовые адреса последовательных портов. По смещению 4 находится регистр управления модема, который как раз использует служебные линии COM. Меняя задержки между обращениями к порту, можно получить сигнал любой формы. |
| surfacing |
5.03.2003 19:33
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 3 Репутация: 0 |
2 LEO :
Многоуважаемый LEO ! Огромне спасибо за ваши рациональные, терпеливые ответы! |
| Noname |
6.03.2003 18:23
Сообщение
#8
|
|
Гость |
апять спасибой все закончилось.....
|
| bonnyka |
8.03.2003 11:43
Сообщение
#9
|
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Репутация: 0 |
а чем же ещё это должно было закончиться?!
-------------------- а ничего заумного не дождётесь=)
|
| AlaRic |
8.03.2003 11:59
Сообщение
#10
|
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
баксы :) :) :))
|
| Slam |
9.03.2003 18:03
Сообщение
#11
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 136 Пол: Мужской Репутация: 0 |
Цитата баксы А сами говорите, что надо "помогать ближнему своему" и присём безвозмездно... эх вы... 8) |
| AlaRic |
9.03.2003 18:10
Сообщение
#12
|
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
Ха-ха....да шучу я! :)
|
| Slam |
9.03.2003 18:13
Сообщение
#13
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 136 Пол: Мужской Репутация: 0 |
Да я блин тоже... ;D
|
![]() ![]() |
|
Текстовая версия | 8.12.2025 12:21 |