Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home3/mrwolfeu/public_html/zps-electronics.com/forum/sql.php on line 64
ZPS-electronics
  Привет, Гость! Авторизация | Регистрация

Страницы: 1 2 3 4 Новая тема|Ответить
ZPS-electronics -> Комментарии к статьям -> Основы программирования LPT порта
 В этом топике обсуждается статья: http://www.zps-electronics.com/?name=lpt_programing
c-300 19.10.03 в 15.03 [изменить][ответить]


гость
Привет всем! Народ плиз подскажите как это делается на VB? Ну очень надо. help.gif
IP: скрыт Это сообщение оставил незарегистрированный посетитель
Nom 20.10.03 в 15.53 [ответить]


профиль
QUOTE (c-300 @ Oct 19 2003, 12:03 PM)
Привет всем! Народ плиз подскажите как это делается на VB? Ну очень надо.  help.gif

http://emanual.ru/download2/2717.html
IP: скрыт о пользователе: 3 сообщений c Oct.2003
Nom 20.10.03 в 16.45 [ответить]


профиль
Решил сюда плюхнуть, в других разделах уж больно тихо.

Проблема в следующем: написал програмку для лпт, пускаю ее под ХР.

QUOTE

#include <stdio.h>
#include <windows.h>

int main()
{
          HANDLE hLPT = CreateFile( "LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
                                                  FILE_ATTRIBUTE_NORMAL, NULL);

          if (hLPT != INVALID_HANDLE_VALUE)
          {
                    puts("lpt1 is open");

                    unsigned char buffer = 255;
                    int nSize = sizeof(buffer);

                    DWORD nBytesWritten;
                    OVERLAPPED ol;

                    WriteFile(hLPT, &buffer, nSize, &nBytesWritten, &ol);

                    printf("bytes written - %d\n", nBytesWritten);

                    printf("Last Error Number - %d\n", GetLastError());

                    CloseHandle(hLPT);
          }
          else
                    puts("error opening lpt1");

          return 0;
}


lpt1 is open
bytes written - 0
Last Error Number - 6

Получается, что вроде как порт открыт, но в него ничего не пишется, а на сайте microsofta нашел инфу, что это неправильный handle. Вот ссылка. В общем хрень какая-то.

Не работает всё это при любых режимах LPT, перепробовал всё что было в биосе.
И ещё, напряжение почему-то вместо 5В от 4.36В до 4.38В.
Может порт просто глючный?
IP: скрыт о пользователе: 3 сообщений c Oct.2003
Atow 21.10.03 в 04.48 [ответить]


профиль
Попробуй
HANDLE hLPT = CreateFile( "LPT1", GENERIC_WRITE or GENERIC_READ , 0, NULL, OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, 0);
Не помню как в сях операция побитового "ИЛИ" frown.gif
Если знаешь - замени OR на неё. Если не знаешь - поищи в доках.

-----------------
Atow
IP: скрыт о пользователе: 429 сообщений c Jan.2002, живет в Omsk
Nom 21.10.03 в 13.38 [ответить]


профиль
Atow:
Спасибо, из-за copy-paste не заметил, что там на запись порт открывал. Теперь говорит, что Access Denied. Так что вариант с просто отрытием порта как файла под XP ничего не дает.

P.S. OR в С++ выглядит так - || . Две вертикальные черты, одна - побитовый ИЛИ.
IP: скрыт о пользователе: 3 сообщений c Oct.2003
Ante 24.10.03 в 19.16 [изменить][ответить]


гость
Тема очень интересная, но у меня не работает Ваш пример на С (второй пример). Порт LPT в BIOS включен, однако напряжение не подается. Хотелось бы понять почему...

Огромная просьба ответить на ante@front.ru или здесь.
IP: скрыт Это сообщение оставил незарегистрированный посетитель
Dj Starkoff 25.10.03 в 14.51 [изменить][ответить]


гость
Скачал программку migalka... У меня на Windows 2000, программа запускается, но эффекты тормозят очень - Диоды очень медленно переключаются... Пробовал загрузить под Дос - работает великолепно... Не подскажите, как всё таки решить эту проблемку в Windows'е???
IP: скрыт Это сообщение оставил незарегистрированный посетитель
OxoTHuk 26.10.03 в 00.41 [ответить]


профиль
To ZPS,
А я забил на всё это, в основном из-за того что я больше всего сижу в ХР.
Но мне до сих пор приходят письма с прозьбами прислать прогу.
IP: скрыт о пользователе: 5 сообщений c Apr.2003
Vladimir 28.10.03 в 16.05 [изменить][ответить]


гость
Вы что, не знаете о Inpout32.dll
К нему есть модуль на Visual Basik. Подключаешь модуль,
переписываешь библиотеку к проекту. Всё. Можно использовать
In(???) Out(???),???. Кстати и VB не нужен.В любом языке пишешь использовать библиотеку и всё. Под XP работает.
Кстати lpt состоит из трёх логических портов.(378,379,37A)
Можно использовать ещё кучу i/o линий.
IP: скрыт Это сообщение оставил незарегистрированный посетитель
Kislota[UA] 07.01.04 в 03.57 [изменить][ответить]


гость
Таких примеров хватает по всему нету,все равно спасибо,а вот с Делфями сложнее,про сомы дофига чено ,а с лпт-полная лажа,тыж небудешь например в режиме реального времени постоянно вызывать асмовскую порцедуры и вытаскивать байты,есть апи функции,но неде про них нечо нету
IP: скрыт Это сообщение оставил незарегистрированный посетитель
SS 27.03.04 в 22.53 [изменить][ответить]


гость
смотрю я и аж удивляюсь, - вроде руки у человека на месте, а ... цитирую: "...Стандартных функций для работы с портом я не нашел и использовал вставки на ассемблере:
asm
MOV DX,0378H
MOV AL,data //data - то, что послать.
OUT DX,AL
end;..." виндовс 9х/МЕ/2000/ХР НЕ ДАСТ Вам обратиться к оборудованию из виндовых программ таким образом. Зачем же советовать неопробованные методы? Вы пытаетесь в 32-хбитной программе делать досовские вещи. Попробуйте еще в дельфи вызвать досовское прерывание int 21h :)
для того, чтобы реализовать в виндовском приложении поддержку харда (того же LPT) потребуется: Win32 SDK + MSVC + Delphi (если пишете на дельфи) + Win DDK (для конкретной версии - т.е. для НТ или для 9х). Вы что-нибудь слышали о 0-ring'е? VxD?
Так что либо учитесь программировать, либо не говорите потом:"...в Delphi у меня не получилось - может просто что-то криво написал..." - как говорится, - ошибка в ДНК...
IP: скрыт Это сообщение оставил незарегистрированный посетитель
OxoTHuk 27.03.04 в 23.52 [ответить]


профиль
Дак Вы подскажите как правильно надо...

Зачем же советовать неопробованные методы?
Всё испробовано, всё работает...
IP: скрыт о пользователе: 5 сообщений c Apr.2003
ZPS 28.03.04 в 00.35 [ответить]
Админ

профиль
SS
умник,
эта вставка отлично работает и в C++ и Delphi если писать под 9x
Моя программка-пример на этом основана.

Сейчас я могу переделать её под работу в 2k и XP - просто подгрузив dll'ку в начале.

Работа с DDK намного сложнее и новичкам она нафиг не нужна, а тем кто пишет что-то серьёзное, мои подсказки не нужны, они и сами знают как написать драйвер. Опытным программистам не пришлось бы объяснять как правильно собирать байт из битов.

Статья была написана более 2х лет назад, тогда я только делал первые шаги в программировании. Сейчас я могу написать драйвер и нормальный софт и собрать устройство намного сложнее, но обновлять статьи просто лень.

Через пару месяцев будет подробная инфа по работе с USB. А LPT это только для того чтобы сделать первый шаг....

-----------------
"Мы лепили любовь, вышла баба с веслом"©ДДТ
IP: скрыт о пользователе: 1363 сообщений c Jan.2002, живет в Tallinn
Guest_Agressor 06.07.04 в 23.20 [изменить][ответить]


гость
Никто не знает как прогить порт через Visual Basic? Устал уже искать!
IP: скрыт Это сообщение оставил незарегистрированный посетитель
ZPS 06.07.04 в 23.27 [ответить]
Админ

профиль
Guest_Agressor
на в.бейсике такие вещи не пишутся.

-----------------
"Мы лепили любовь, вышла баба с веслом"©ДДТ
IP: скрыт о пользователе: 1363 сообщений c Jan.2002, живет в Tallinn
Guest_Agressor 07.07.04 в 21.30 [изменить][ответить]


гость
ZPS спасибо
IP: скрыт Это сообщение оставил незарегистрированный посетитель
Guest 28.07.04 в 22.21 [изменить][ответить]


гость
To Guest Agressor
а я на vb написал, все прекрасно работает. используй библиотеку dlportio.dll (в инете поищи, она везде лежит)
у нее есть функции
DlPortReadPortUchar для чтения из порта
и DlPortWritePortUchar для записи.
я написал простейшую прогу за 15 мин - всего несколько режимов. Светодиоды мигают как надо. ничего не глючит и все отлично работает.
IP: скрыт Это сообщение оставил незарегистрированный посетитель
Nine 29.07.04 в 14.24 [изменить][ответить]


гость
quotation :"Чтобы запитать первый выход, нужно послать в порт единицу. Чтобы запитать пятый посылаем 16 и тп.. Ноль посланный в порт "погасит" все выходы, а число 256(!!!) запитает все сразу."
Not 256 but 255
IP: скрыт Это сообщение оставил незарегистрированный посетитель
Guest 17.08.04 в 22.19 [изменить][ответить]


гость
ну вот блин...
а кто-то обещал, что тема не заглохнет.
IP: скрыт Это сообщение оставил незарегистрированный посетитель
ZPS 18.08.04 в 00.07 [ответить]
Админ

профиль
Я сейчас над USB работаю...

-----------------
"Мы лепили любовь, вышла баба с веслом"©ДДТ
IP: скрыт о пользователе: 1363 сообщений c Jan.2002, живет в Tallinn
 
Страницы: 1 2 3 4
Форум сайта
ZPS-electronics
Powered by ZPS Board v1.0b
© 2004  ZPS-electronics