Форум программистов, компьютерный форум CyberForum.ru

Управление LPT портом - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.76
RAFA91
Заблокирован
23.06.2013, 13:20     Управление LPT портом #1
Нужно управлять LPT портом в BORLAND C++ 3.1
Подскажите каким образом осуществлять ввод и запись в порт информации.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 13:20     Управление LPT портом
Посмотрите здесь:

C++ как добавить управление RTS и DTR в работу с ком портом?
C++ Работа с COM - портом
Управление LPT портом под FreeBSD C++
Работа с LPT C++
Программирование LPT C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.06.2013, 13:43     Управление LPT портом #2
а у тебя дос стоит на компе что ли?
RAFA91
Заблокирован
23.06.2013, 14:55  [ТС]     Управление LPT портом #3
SP3 у меня.
Даже графический режим работает.

Добавлено через 1 час 7 минут
Написал такой кусок. Вроде без ошибок, но сигналы на выходе порта не появляются. В чем может быть косяк?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
 
main()
 
{
 
         int data=255;
 
         outportb(0x378,data);
 
         getch();
 
}
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:03     Управление LPT портом #4
1. LPT-порт может быть отключен в биосе.
2. Адрес первого LPT-порта - 0x3BC, второго - 0x378, третьего - 0x278. Пробуй с первого.

Добавлено через 30 секунд
3. Windows может запретить доступ к порту для DOS-приложений.
RAFA91
Заблокирован
23.06.2013, 15:13  [ТС]     Управление LPT портом #5
Не думаю, что он отключен. Я через LPT порт прошивал МК.
У меня всего 1 LPT порт. Написано, что LPT1.
Может я не все библиотеки подключил?
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:18     Управление LPT портом #6
Если бы ты не все библиотеки подключил, то твоя программа попросту не собралась бы.
Цитата Сообщение от RAFA91 Посмотреть сообщение
У меня всего 1 LPT порт.
Уточни его адрес в BIOS.
И позволь поинтересоваться, для какой цели тебе это нужно? Если ты это делаешь для своих собственных нужд, то можно порекомендовать специальные либы, если же это какая-то лаба - тогда вопрос решен, пишешь ты правильно.
raxp
10140 / 6527 / 475
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
23.06.2013, 15:25     Управление LPT портом #7
...под DOS-ом TC запускает?
RAFA91
Заблокирован
23.06.2013, 15:29  [ТС]     Управление LPT портом #8
Это мой курсовой проект. В разделе оборудование - диспетчер устройств - порты написано следующее.

Диапазон ввода/вывода 0378 - 037F
Диапазон ввода/вывода 0778 - 077F
DMA 03

Добавлено через 1 минуту
Говорят как-то можно через ассемблерные вставки управлять портом.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:31     Управление LPT портом #9
Цитата Сообщение от RAFA91 Посмотреть сообщение
Говорят как-то можно через ассемблерные вставки управлять портом.
Нет никакой разницы что ты будешь использовать: outportb или ассемблерные вставки.
RAFA91
Заблокирован
23.06.2013, 15:34  [ТС]     Управление LPT портом #10
А под функцию outportb не надо разве подключать библиотеку?
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:47     Управление LPT портом #11
Я не пойму, у тебя программа компилируется или нет?

Добавлено через 9 минут
Да, и как ты это проверяешь?
RAFA91
Заблокирован
23.06.2013, 16:00  [ТС]     Управление LPT портом #12
После нажатия Ctrl+F9 появляется окно командной строки.

Добавлено через 39 секунд
Что-то типо ERROR не выскакивает.

Добавлено через 1 минуту
Вставлял исче такое для проверки работы программы.

C
1
printf("***********");
Добавлено через 48 секунд
Расширение файла С. Может надо было СPP ставить.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 16:08     Управление LPT портом #13
Как ты проверяешь пишется в порт что-то или нет?
RAFA91
Заблокирован
23.06.2013, 16:14  [ТС]     Управление LPT портом #14
пишу в порт число 255 и цепляю туда светодиод с резистором. По идеи должен гореть, а он не горит.
Есть программа управления портом - WinLpt . Ею я выставлял на выходах порта 1 и 0, и все работало.
А вот от С++ 1 и 0 не выставляются.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 16:22     Управление LPT портом #15
Очевидно что проблема в BORLAND C++ 3.1, который ты запускаешь из под Windows. Тут поможет либо "чистый" DOS, либо современный компилятор с либой от "третьих лиц".
RAFA91
Заблокирован
23.06.2013, 16:25  [ТС]     Управление LPT портом #16
Тоже самое мне говорили, по поводу графики. Однако работает нормально без DOSа.
В BORLAND C++ 3.1 есть папка DOS.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 16:33     Управление LPT портом #17
Цитата Сообщение от RAFA91 Посмотреть сообщение
Тоже самое мне говорили, по поводу графики. Однако работает нормально без DOSа.
Ну как бы графика - графикой, а ввод и вывод через порты это нечто иное.
Например Windows позволяет изменять палитру через эмуляцию. Попробуй что-нибудь нарисовать в полноэкранном режиме, у тебя не получится.
raxp
10140 / 6527 / 475
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
23.06.2013, 17:46     Управление LPT портом #18
Есть программа управления портом - WinLpt
раз TC не считает нужным ответить прямо на вопрос, то делаем вывод, что под Windows.

В BORLAND C++ 3.1 есть папка DOS.
чушь. Вам TC нужно работать с портом разрешенными методами через CreateFile(), либо через драйвер. К примеру, giveosys вам достаточно подключить и работать старыми методами вывода в порт, либо через inpout32/64.dll и ему подобными.
RAFA91
Заблокирован
23.06.2013, 18:27  [ТС]     Управление LPT портом #19
Вроде как-то делают через ассемблерные вставки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 18:35     Управление LPT портом
Еще ссылки по теме:

C++ И снова LPT порт и все вытекающие
C++ LPT порт, Ubuntu, code::blocks
C++ Чтение из LPT порта

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,016
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 18:35     Управление LPT портом #20
Вот так это делается:
C++
1
2
3
4
5
_asm {
    mov dx, 378h
    mov al, 255
    out dx, al
}
А для тех "кто в танке":
Цитата Сообщение от lazybiz Посмотреть сообщение
Нет никакой разницы что ты будешь использовать: outportb или ассемблерные вставки.
Yandex
Объявления
23.06.2013, 18:35     Управление LPT портом
Ответ Создать тему
Опции темы

Текущее время: 01:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru