Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

LPT на BORLAND C++ BUILDER 6
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=5958
Страница 1 от 1

Автор:  leotron [ Съб Юли 19, 2008 10:26 am ]
Заглавие:  LPT на BORLAND C++ BUILDER 6

Опитвам се да свържа няколко релета към PC-тo директно с кабел "USB-PARALLEL PORT" но не мога да открия как да си изпратя байт към порта от страна на PC-то. Та въпросът ми е как да комуникирам (то по скоро запис, аз няма какво да чета) с паралелния порт на BORLAND C++ BUILDER 6.
Благодаря.

Автор:  ike [ Съб Юли 19, 2008 7:17 pm ]
Заглавие: 

http://www-user.tu-chemnitz.de/~heha/ba ... faq.htm.en
Пробай с FT232RL или ATtiny2313.

Автор:  ps66 [ Съб Юли 19, 2008 7:39 pm ]
Заглавие:  Re: LPT на BORLAND C++ BUILDER 6

leotron написа:
Опитвам се да свържа няколко релета към PC-тo директно с кабел "USB-PARALLEL PORT" но не мога да открия как да си изпратя байт към порта от страна на PC-то. Та въпросът ми е как да комуникирам (то по скоро запис, аз няма какво да чета) с паралелния порт на BORLAND C++ BUILDER 6.
Благодаря.


Виж:
CreateFile("\\\\.\\LPT1", ...
WriteFile ...

Автор:  leotron [ Нед Юли 20, 2008 7:17 pm ]
Заглавие: 

Нещо пропускам явно. Опитвам се по най-простия начин да накарам това животно да включва и изключва - не ще и това е. Има ли нещо което не правя както трябва.


Код:
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);
  }
}


Автор:  Zdrav [ Нед Юли 20, 2008 8:00 pm ]
Заглавие: 

А как разбираш, че нищо не става?
С WriteFile, PC-то ще изстреля байта към LPT. Отвън на порта преди релетата имаш ли някакъв вид регистри, които да запомнят изпратения байт?

Автор:  ike [ Нед Юли 20, 2008 8:23 pm ]
Заглавие: 

leotron
NONSPOOLED_LPT1 предполагам че това ти е паралелния порт на дъното на адрес 0x378 - loopback имаш ли?
"USB-PARALLEL PORT" това в какъв контекст го споменаваш?
PS. Потърси в профила ми ICQ-то ми може и да успея да ти помогна.

Автор:  leotron [ Нед Юли 20, 2008 9:12 pm ]
Заглавие: 

Zdrav написа:
А как разбираш, че нищо не става?
С WriteFile, PC-то ще изстреля байта към LPT. Отвън на порта преди релетата имаш ли някакъв вид регистри, които да запомнят изпратения байт?

Свързах 8 светодиода към изходите на LPT-то. Нямам никакви регистри- директно. С тая програмка всичко си е ОК- светодиодите си светят постоянно в зависимост от числото което съм записал. С моя пример обаче не искат. Според мен може и без регистър.

Автор:  leotron [ Нед Юли 20, 2008 9:19 pm ]
Заглавие: 

ike написа:
leotron
NONSPOOLED_LPT1 предполагам че това ти е паралелния порт на дъното на адрес 0x378 - loopback имаш ли?
"USB-PARALLEL PORT" това в какъв контекст го споменаваш?
PS. Потърси в профила ми ICQ-то ми може и да успея да ти помогна.


Пробвах с "\\\\.\\LPT1" и "LPT1" зацикля на WriteFile() и до там. Единствено с "NONSPOOLED_LPT1" успявам да направя най-дорото за сега. Мислех да си вземам кабел "USB-PARALLEL PORT", защото на нотбука нямам ЛПТ, но първо реших да пробвам с ЛПТ-то на настолното PC (windows XP).

Автор:  Zdrav [ Нед Юли 20, 2008 10:44 pm ]
Заглавие: 

leotron написа:
Свързах 8 светодиода към изходите на LPT-то. Нямам никакви регистри- директно. С тая програмка всичко си е ОК- светодиодите си светят постоянно в зависимост от числото което съм записал. С моя пример обаче не искат. Според мен може и без регистър.

Програмката, която посочваш не използва методи като WriteFile. Прочети какво пише на този сайт за директна работа с LPT под XP.
http://beyondlogic.org/
Обърни внимание по колко различни начина може да се конфигурира и работи с паралелния порт. "USB-LPT" не бързай да си купуваш. По-добрия вариант е FTDI.

Автор:  leotron [ Сря Юли 30, 2008 3:39 pm ]
Заглавие: 

Zdrav написа:
leotron написа:
Свързах 8 светодиода към изходите на LPT-то. Нямам никакви регистри- директно. С тая програмка всичко си е ОК- светодиодите си светят постоянно в зависимост от числото което съм записал. С моя пример обаче не искат. Според мен може и без регистър.

Програмката, която посочваш не използва методи като WriteFile. Прочети какво пише на този сайт за директна работа с LPT под XP.
http://beyondlogic.org/
Обърни внимание по колко различни начина може да се конфигурира и работи с паралелния порт. "USB-LPT" не бързай да си купуваш. По-добрия вариант е FTDI.

Благодаря за инфото, реших проблема - използвм FTDI, всичко е ОК.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/