| Автор |
Съобщение |
|
leotron
Ранг: Минаващ
Регистриран на: Пон Ное 28, 2005 10:49 am Мнения: 86 Местоположение: Русе
|
 LPT на BORLAND C++ BUILDER 6
Опитвам се да свържа няколко релета към PC-тo директно с кабел "USB-PARALLEL PORT" но не мога да открия как да си изпратя байт към порта от страна на PC-то. Та въпросът ми е как да комуникирам (то по скоро запис, аз няма какво да чета) с паралелния порт на BORLAND C++ BUILDER 6.
Благодаря.
|
| Съб Юли 19, 2008 10:26 am |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Съб Юли 19, 2008 7:17 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 Re: LPT на BORLAND C++ BUILDER 6
Виж:
CreateFile("\\\\.\\LPT1", ...
WriteFile ...
_________________ путинофили: "иди н***й"
|
| Съб Юли 19, 2008 7:39 pm |
|
 |
|
leotron
Ранг: Минаващ
Регистриран на: Пон Ное 28, 2005 10:49 am Мнения: 86 Местоположение: Русе
|
Нещо пропускам явно. Опитвам се по най-простия начин да накарам това животно да включва и изключва - не ще и това е. Има ли нещо което не правя както трябва.
 |  |  |  | Код: void __fastcall TForm1::Button1Click(TObject *Sender) { unsigned long NumBytesWritten; unsigned char Data = 0x00; Lpt1Han = CreateFile("\\\\.\\NONSPOOLED_LPT1", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL); if (Lpt1Han) { WriteFile(Lpt1Han, &Data, 1, &NumBytesWritten, NULL); CloseHandle(Lpt1Han); } }
void __fastcall TForm1::Button2Click(TObject *Sender) { unsigned long NumBytesWritten; unsigned char Data = 0xFF; Lpt1Han = CreateFile("\\\\.\\NONSPOOLED_LPT1", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if (Lpt1Han) { WriteFile(Lpt1Han, &Data, 1, &NumBytesWritten, NULL); CloseHandle(Lpt1Han); } }
|  |  |  |  |
|
| Нед Юли 20, 2008 7:17 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
А как разбираш, че нищо не става?
С WriteFile, PC-то ще изстреля байта към LPT. Отвън на порта преди релетата имаш ли някакъв вид регистри, които да запомнят изпратения байт?
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Нед Юли 20, 2008 8:00 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
leotron
NONSPOOLED_LPT1 предполагам че това ти е паралелния порт на дъното на адрес 0x378 - loopback имаш ли?
"USB-PARALLEL PORT" това в какъв контекст го споменаваш?
PS. Потърси в профила ми ICQ-то ми може и да успея да ти помогна.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Нед Юли 20, 2008 8:23 pm |
|
 |
|
leotron
Ранг: Минаващ
Регистриран на: Пон Ное 28, 2005 10:49 am Мнения: 86 Местоположение: Русе
|
Свързах 8 светодиода към изходите на LPT-то. Нямам никакви регистри- директно. С тая програмка всичко си е ОК- светодиодите си светят постоянно в зависимост от числото което съм записал. С моя пример обаче не искат. Според мен може и без регистър.
|
| Нед Юли 20, 2008 9:12 pm |
|
 |
|
leotron
Ранг: Минаващ
Регистриран на: Пон Ное 28, 2005 10:49 am Мнения: 86 Местоположение: Русе
|
Пробвах с "\\\\.\\LPT1" и "LPT1" зацикля на WriteFile() и до там. Единствено с "NONSPOOLED_LPT1" успявам да направя най-дорото за сега. Мислех да си вземам кабел "USB-PARALLEL PORT", защото на нотбука нямам ЛПТ, но първо реших да пробвам с ЛПТ-то на настолното PC (windows XP).
|
| Нед Юли 20, 2008 9:19 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Програмката, която посочваш не използва методи като WriteFile. Прочети какво пише на този сайт за директна работа с LPT под XP.
http://beyondlogic.org/
Обърни внимание по колко различни начина може да се конфигурира и работи с паралелния порт. "USB-LPT" не бързай да си купуваш. По-добрия вариант е FTDI.
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Нед Юли 20, 2008 10:44 pm |
|
 |
|
leotron
Ранг: Минаващ
Регистриран на: Пон Ное 28, 2005 10:49 am Мнения: 86 Местоположение: Русе
|
Благодаря за инфото, реших проблема - използвм FTDI, всичко е ОК.
|
| Сря Юли 30, 2008 3:39 pm |
|
|