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

 
 
> Помогите разобратся с 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
 
Start new topic
Ответов
Капитан Хард
сообщение Nov 15 2008, 12:56
Сообщение #2





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



Цитата(DpInRock @ Nov 15 2008, 08:42) *
http://www.zealsoftstudio.com/ntport/
Вот тут вам объяснят как это сделать. Тогда из ДОС приложения моно обращаться.

в английском не рублю wacko.gif

Цитата(shuks @ Nov 15 2008, 09:48) *
компонент для работы с COM-портом


спасибо - попробую поставить но чувствую разобратся будет проблемма - нет ли каких нибудь книг на русском по этому компоненту?

Цитата(zltigo @ Nov 15 2008, 10:15) *
Из NT консольного приложения доступ к стандартным COM портам и области BIOS виртуальной машины есть, но это не отменяет дебильность задания.


пользуюсь XP и NT меня не волнует ... как и другие операционки.

Цитата(SysRq @ Nov 15 2008, 14:33) *
Картинки там есть? Наверняка там Windows 9x (или ниже). Для NT сие не может быть применено.

картинок там кроме кода нет. Уточнить задание не могу - препод мифическая личность, появляется раз в 2 недели и если я ему ничего не принесу будет полный армагеддец twak.gif

Цитата(SysRq @ Nov 15 2008, 14:33) *
С т. з. использования COM-порта компьютера под управлением операционной системы для передачи информации, вам не нужны адреса и регистры. Управление осуществляется через API системы (это, грубо говоря, набор всяких функций). При этом о там как используются регистры можно отлично потеоретизировать, чтобы понимать суть как работают функции API.


что за API системы ? это связано с программированием в Delphi или Паскале? (Первое приоритетней т.к. можно сделать прогу с кравивым и понятным интерфейсом). если это не зарагивает программирование даже и рассматривать не стоит.


Короче люди. подскажите как с помощью Delphi (ну или на крайний Pascal) запрограммировать программу для :
1. проверки адресов порта
2. инициальзации порта (установки скоростей , выводов и т.п.)
3. передачи данных (вбил в ячейку - нажал на кнопку - байт полетел)


как я понимаю для этого нужно скачать компонент для работы с COM-портом... но вот разобратся в его командах и синтаксисе без знания английского для меня проблемма
Go to the top of the page
 
+Quote Post
Xenom0rph
сообщение Nov 17 2008, 09:08
Сообщение #3


Частый гость
**

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



Цитата(Капитан Хард @ Nov 15 2008, 15:56) *
в английском не рублю wacko.gif
спасибо - попробую поставить но чувствую разобратся будет проблемма - нет ли каких нибудь книг на русском по этому компоненту?
пользуюсь XP и NT меня не волнует ... как и другие операционки.
картинок там кроме кода нет. Уточнить задание не могу - препод мифическая личность, появляется раз в 2 недели и если я ему ничего не принесу будет полный армагеддец twak.gif
что за API системы ? это связано с программированием в Delphi или Паскале? (Первое приоритетней т.к. можно сделать прогу с кравивым и понятным интерфейсом). если это не зарагивает программирование даже и рассматривать не стоит.
Короче люди. подскажите как с помощью Delphi (ну или на крайний Pascal) запрограммировать программу для :
1. проверки адресов порта
2. инициальзации порта (установки скоростей , выводов и т.п.)
3. передачи данных (вбил в ячейку - нажал на кнопку - байт полетел)


как я понимаю для этого нужно скачать компонент для работы с COM-портом... но вот разобратся в его командах и синтаксисе без знания английского для меня проблемма


Ну, а ты что хотел, что бы тут за тебя программу написали, разбирайся, тем для изучения тебе много подкинули, прогугли по этой теме (по тем же самым win api), навярняка есть куча полезных статей в нете и на русском языке, приложи сам чуток усилий wink.gif
Вот примеры с одной книги по AVR, там из проги на Дельфи команды МК посылаются, может поможет чем : http://www.sendspace.com/file/l9xa12


[quote name='Капитан Хард' date='Nov 15 2008, 15:56' post='501275']
в английском не рублю wacko.gif
спасибо - попробую поставить но чувствую разобратся будет проблемма - нет ли каких нибудь книг на русском по этому компоненту?
пользуюсь XP и NT меня не волнует ... как и другие операционки.
картинок там кроме кода нет. Уточнить задание не могу - препод мифическая личность, появляется раз в 2 недели и если я ему ничего не принесу будет полный армагеддец twak.gif
что за API системы ? это связано с программированием в Delphi или Паскале? (Первое приоритетней т.к. можно сделать прогу с кравивым и понятным интерфейсом). если это не зарагивает программирование даже и рассматривать не стоит.
[b]Короче люди. подскажите как с помощью Delphi (ну или на крайний Pascal) запрограммировать программу для :
1. проверки адресов порта
2. инициальзации порта (установки скоростей , выводов и т.п.)
3. передачи данных (вбил в ячейк
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
|- - SysRq   Цитата(Капитан Хард @ Nov 15 2008, 15:56)...   Nov 15 2008, 13:51
- - 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 Текстовая версия Сейчас: 11th August 2025 - 13:01
Рейтинг@Mail.ru


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