Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> опять про последовательные порты, Borland c++ 
:(
    Опции темы
gribikc
Дата 8.3.2003, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 9.2.2003

Репутация: нет
Всего: нет



мне говорили что у сом портов есть диапвзон ввода вывода
а как им пользоваться из консольных приложений (для доса)



--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
suborg
Дата 10.3.2003, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



ну, диапазон ввода/вывода - это номера логических портов, назначенных для данного физического COM порта. То есть например если у тебя в диапазоне начальный адрес 378h (ой, цифры не помню уже - это может оказаться лпт порт, ну, не в этом суть), так вот, значит если теперь напишешь
outp(0x378,0);
то у тебя пошлётся байтик нулевого значения в com порт
PM MAIL WWW ICQ   Вверх
Baa
Дата 10.3.2003, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Вот smile.gif на те прогу %) токо сваял smile.gif прога дико простая... под дос... посылает на модем команду, чтоб он пульсом по 100 звонил...
Код

#include <stdio.h>
#include <string.h>
#include <dos.h>
#pragma option -2

void clrs ()
{
_asm {
 db 0b0h
 db 03h
 db 0cdh
 db 10h
}
}

main ()
{
const char* szCommand = "ATDP100\xD";
int iCommandLen = strlen (szCommand);
int iCOM = 0;

_asm {
 call far ptr clrs
 push es
 mov ax, 40h
 mov es,ax
 mov bx, es:0000h
 mov iCOM, bx
 pop es
}
printf ("COM1 Address: %Xh\n", iCOM);
_asm {

 mov dx, iCOM+3
 mov al, 80h
 out dx, al
 
 mov cx, 0FFFFh
}
delay1:
_asm {  loop delay1
 mov dx, iCOM+0
 mov al, 02h
 out dx, al
 
 mov cx, 0FFFFh
}
delay2:
_asm {  loop delay2
 mov dx, iCOM+1
 xor al, al
 out dx, al
 
 mov cx, 0FFFFh
}
delay3:
_asm {  loop delay3
 mov dx, iCOM+3
 mov al, 0011b
 out dx, al
 
 mov cx, 0FFFFh
}
delay4:
_asm {  loop delay4
 mov dx, iCOM+4
 mov al, 1011b
 out dx, al
 
 mov cx, 0FFFFh
}
delay5:
_asm {  loop delay5
 mov dx, iCOM
 mov si, szCommand
 mov cx, iCommandLen
 rep outsb
}

delay (6000);

_asm {

 mov dx, iCOM+4
 xor al, al
 out dx, al
       }
return 0;
}



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
gribikc
Дата 11.3.2003, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 9.2.2003

Репутация: нет
Всего: нет



спасибо


--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
gribikc
Дата 14.3.2003, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 9.2.2003

Репутация: нет
Всего: нет



Baa
а при чём тут модем я не понелconfused.gif
а что это такое объесни плиз!!!!
Код

delay1:
_asm {  loop delay1
mov dx, iCOM+0
mov al, 02h
out dx, al

mov cx, 0FFFFh
}
delay2:
_asm {  loop delay2
mov dx, iCOM+1
xor al, al
out dx, al

mov cx, 0FFFFh
}
delay3:
_asm {  loop delay3
mov dx, iCOM+3
mov al, 0011b
out dx, al

mov cx, 0FFFFh
}
delay4:
_asm {  loop delay4
mov dx, iCOM+4
mov al, 1011b
out dx, al

mov cx, 0FFFFh
}
delay5:
_asm {  loop delay5
mov dx, iCOM
mov si, szCommand
mov cx, iCommandLen
rep outsb
}




--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
Baa
Дата 14.3.2003, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



А притом, что модем втыкивается в COM порт... мне для проверки было проще в него посылать.
А что КОНКРЕТНО тебе в этом коде не понятно?


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
gribikc
Дата 14.3.2003, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 9.2.2003

Репутация: нет
Всего: нет



тут кучам одинаковых фраз если не трудно объесни следующее
delay5:-чо это такое и 5 раз повторяется
да вообше что это такое:
delay2:
_asm { loop delay2
mov dx, iCOM+1
xor al, al
out dx, al

mov cx, 0FFFFh




--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
gribikc
Дата 14.3.2003, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 9.2.2003

Репутация: нет
Всего: нет



да и ещё на счёт приёма данных


--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
-=Baa=-
Дата 14.3.2003, 22:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Задержка сделана для совместимости с быстрыми процами (выше 133п) если её не делать, то запись в I/O ports проходит впустую.
А насчет приема дык просто читай из порта... а еще лучше, поставь свой обработчик прерывания на приход данных из порта... если сам не разберешься - пиши...
  Вверх
gribikc
Дата 15.3.2003, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 9.2.2003

Репутация: нет
Всего: нет



Код
А насчет приема дык просто читай из порта... а еще лучше, поставь свой обработчик прерывания на приход данных из порта... если сам не разберешься - пиши...

Код
, поставь свой обработчик прерывания на приход данных из порта

a хах это сделать


--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
Baa
Дата 16.3.2003, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Вот, на те, попроще...
Код

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <dos.h>

#pragma warn -wrch

main ()
{
const char szCommand [] = "ATZ\xD";
int iCommandLen = strlen (szCommand);
clrscr();
printf ("Baa welcomes you, friend;)\n");
_asm {
 xor ah, ah        //init port
 mov al, 11100011b //9600/8n1
 mov dx, 0   //COM1
 int 14h
 
 xor si, si
}
send_loop:
_asm {
 // zdes mi blagopolu4no splavlyaem modemu ATZ command
 mov dx, 0
 mov ah, 01h
 mov al, byte ptr szCommand[si]
 int 14h

 inc si
 
 cmp si, iCommandLen
 jle send_loop
}
while (1) {
 main_loop:
 _asm {
  mov ah, 2    //4itaem iz porta
  int 14h
  test ah, ah
  jnz no_input
  int 29h
 }
 no_input:
 _asm {
  mov ah, 1
  int 16h
  jz main_loop
  mov ah, 8
  int 21h
  test al, al
  jnz main_loop
  int 21h
  cmp al, 2Dh // esli nazhata alt+x - viijti,
  jne main_loop // esli net - prodolzhit' cikl
 }
}

return 0;
}



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.