реклама на сайте
подробности

 
 
> Помогите разобратся с RS-232, проверка портов и т.п.
Капитан Хард
сообщение Nov 14 2008, 20:35
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 13-10-08
Пользователь №: 40 923



Прошу помощи разобратся.

Тут привожу функцию RS232(x) со скана книжки! а значит и ошибок много, написанная на Турбо Паскале для Windows. RS232(0) возвращает количество установленных COM-портов, RS232(1)-базовый адрес COM1, RS232(2) - базовый адрес COM2 и т.п.

Код
(*-библиотека ресурсов №A6 (определение базовых адресов COM-портов).-*)
(Universal auto detection of COM base address)
Function RS232(x:integer).integer; export;
(* $0000:$0400 содержит базовый адрес порта COM1,
$0000:$0402 содержит базовый адрес порта COM2,
$0000:$0404 содержит базовый адрес порта COM3,
$0000:$0406 содержит базовый адрес порта COM4,
$0000:$0406 содержит количество COM портов в двоичном формате.* )
var
Number_of_COM,  COM1, COM2, COM3, COM4:integer;
begin
numer_of_COM:=mem($40:$11); (*Считывает количество COM- портов*)
numer_of_COM:=(numer_of_COM and (8+4+2)) shr 1;
  COM1:=0; COM2:=0; COM3:=0; COM4:=0;
  COM1:=memw($40:$00); (*Процедура чтения из памяти*)
  COM2:=memw($40:$02);
  COM3:=memw($40:$04);
  COM4:=memw($40:$06);
Case x of
  0: RS232:= numer_of_COM;
  1: RS232:= COM1;
  2: RS232:= COM2;
  3: RS232:= COM3;
  4: RS232:= COM4;
end;
end;



Хочу этот код использовать в Делфи в проекте "управление двигателем" чтоб сначала проверить количество COMпортов на компе и их базовые адреса. Потом задам вопросы по инициализации COM порта.

Вопросы:
1. как переделать синтаксис чтобы этот код их Турбо паскаля заработал в Делфи
2. то что (*текст*) - коментарии? я прав?
3. обьясните мне этот участок кода:
Код
numer_of_COM:=mem($40:$11); (*Считывает количество COM- портов*)
numer_of_COM:=(numer_of_COM and (8+4+2)) shr 1;
  COM1:=0; COM2:=0; COM3:=0; COM4:=0;
  COM1:=memw($40:$00); (*Процедура чтения из памяти*)
  COM2:=memw($40:$02);
  COM3:=memw($40:$04);
  COM4:=memw($40:$06);

а именно:
3.1 что мы присваиваем переменной numer_of_COM в первой строчке? (имею в виду функцию mem($40:$11))
3.2 что мы добиваемся второй строчкой?
а именно: numer_of_COM and (8+4+2)) shr 1
почему не: numer_of_COM and 14) shr 1
3.3 COM1:=memw($40:$00); - функция memw($40:$00) из чего читает и что она делает

а теперь догадки : есть прелположение что функции memw и mem читают из ОЗУ . в инете встречал формулировку:
"Mem - это массив памяти. Т.е. с помощью указания номера элемента вы получаете доступ к определенной ячейке. существует 3 вида массива Mem:

* сам Mem - каждый компонент такого массива типа byte.
* MemW - каждый компонент типа word.
* MemL - каждый компонент типа longint."


Надеюсь на вашу помощь . help.gif
хотябы часть обьясните.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Капитан Хард   Помогите разобратся с RS-232   Nov 14 2008, 20:35
- - zltigo   Цитата(Капитан Хард @ Nov 14 2008, 23:35)...   Nov 14 2008, 21:09
|- - Xenom0rph   Цитата(zltigo @ Nov 15 2008, 00:09) Забуд...   Nov 14 2008, 21:26
- - Капитан Хард   Цитата(zltigo @ Nov 15 2008, 00:09) Забуд...   Nov 14 2008, 22:02
|- - vvs157   Цитата(Капитан Хард @ Nov 15 2008, 01:02)...   Nov 14 2008, 23:28
- - SysRq   Цитата(Капитан Хард @ Nov 15 2008, 01:02)...   Nov 14 2008, 22:12
- - Капитан Хард   Дословно? давайте. дз звучит так : научится перед...   Nov 14 2008, 23:20
- - Капитан Хард   Цитата(vvs157 @ Nov 15 2008, 02:28) Метод...   Nov 15 2008, 00:38
- - DpInRock   Цитатаа что имел в виду автор в книге говоря что п...   Nov 15 2008, 05:42
|- - zltigo   Цитата(DpInRock @ Nov 15 2008, 08:42) Обр...   Nov 15 2008, 07:15
|- - XVR   Цитата(zltigo @ Nov 15 2008, 10:15) Из NT...   Nov 17 2008, 08:36
- - shuks   компонент для работы с COM-портом: http://www.tms...   Nov 15 2008, 06:48
- - SysRq   Цитата(Капитан Хард @ Nov 15 2008, 03:38)...   Nov 15 2008, 11:33
|- - AHTOXA   Цитата(SysRq @ Nov 15 2008, 17:33) Картин...   Nov 15 2008, 12:40
- - DpInRock   Турбо Паскаля для NT я не встречал. И если нужно р...   Nov 15 2008, 12:16
|- - zltigo   Цитата(DpInRock @ Nov 15 2008, 15:16) то ...   Nov 15 2008, 15:48
- - Капитан Хард   Цитата(DpInRock @ Nov 15 2008, 08:42) htt...   Nov 15 2008, 12:56
|- - SysRq   Цитата(Капитан Хард @ Nov 15 2008, 15:56)...   Nov 15 2008, 13:51
|- - Xenom0rph   Цитата(Капитан Хард @ Nov 15 2008, 15:56)...   Nov 17 2008, 09:08
- - tyro   В XP com-порты прописаны в реестре. Как их извлечь...   Nov 15 2008, 14:55
- - Капитан Хард   ЦитатаЧитайте классику: Serial Communications in W...   Nov 16 2008, 17:41
- - Капитан Хард   ЦитатаНу, а ты что хотел, что бы тут за тебя прогр...   Nov 17 2008, 10:47
|- - Xenom0rph   Когда я искал информациию по RS232 (Только под С++...   Nov 17 2008, 11:13
- - Капитан Хард   Цитата(Xenom0rph @ Nov 17 2008, 14:13) в ...   Nov 17 2008, 11:31
|- - Xenom0rph   Цитата(Капитан Хард @ Nov 17 2008, 14:31)...   Nov 17 2008, 11:59
- - MrYuran   Вот , приличная статейка, сам по ней начинал. Тут ...   Nov 17 2008, 11:46
- - Капитан Хард   Цитата(MrYuran @ Nov 17 2008, 14:46) Вот ...   Nov 17 2008, 11:57
|- - MrYuran   Цитата(Капитан Хард @ Nov 17 2008, 14:57)...   Nov 17 2008, 12:08
- - tyro   Посмотрите книжку http://ebookscomputer.ru/program...   Nov 17 2008, 12:24
- - SysRq   Еще исходники. Но не паскаль, звиняйте..   Nov 17 2008, 15:59
- - AHTOXA   Ну если уж переметнулись на Дельфи, то ComPort Lib...   Nov 17 2008, 18:16
- - tyro   Можно попользоваться продуктом фирмы MOXA. Там ест...   Nov 17 2008, 20:50
- - Капитан Хард   скачал Программа конечно прикольная но я это долже...   Nov 17 2008, 22:19
- - tyro   Цитата(Капитан Хард @ Nov 18 2008, 01:19)...   Nov 18 2008, 06:12


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 13:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01426 секунд с 7
ELECTRONIX ©2004-2016