Wysyłanie na LPT

Dec 21, 2003 3 Replies

Cześć



W jaki sposób można wysłać sygnał na port LPT? Zależy mi na pinach 2..9. Chodzi mi np. o możliwość wysłania do kompa (przez LPT) prostego (0/1) sygnału z jakiegoś czujnika.


nie wiem jak ustawic piny 2..9 jako wejscie, ale moze wystarczy kilka bitow wejsciowych dla zwyklego portu LPT jest chyba ich 4 ?

/piter

czesc;

ja jako osoba o zerowym pojeciu z elektroniki, uzylem do tego linii wejsciowych portu LPT; sa to linie kontrolne; ja uzywalem 10, 11, 12,

13, 15 - czyli wszystkich;

linie wiszace sa interpretowane wysokim sygnalem; zas ja wpialem je w obwod do masy przez przekaznik; po zalaczeniu sie przekaznika linia dostaje niski sygnal;

dziala to ladnie na nowszych komputerach; na kompie 386sx wiszace wejscie rzeczywiscie mialo wysoki stan, ale po podlaczeniu zwyklego przedluzacza LTP, zaczynalo wariowac;

pzdrv; adas;

Jeśli masz dwukierunkowy port równoległy, to realizujesz to następująco*:

- ustawiasz rejestr wyjściowy portu na 0xFF

- ustawiasz bit kierunku portu w rejestrze kontrolnym: bit 5, maska 0x20

- odczytujesz stan pinów danych portu z rejestru danych Przykładowa funkcja w C realizująca to zadanie - pod systemem Linux: static guchar read_data ( void ){

gint data; guchar rdata;

data = 0xFF; ioctl(ppdev_fd, PPWDATA, &data); // data lines high ioctl(ppdev_fd, PPDATADIR, &data); // input mode ioctl(ppdev_fd, PPRDATA, &rdata); data = 0; ioctl(ppdev_fd, PPWCONTROL, &data); ioctl(ppdev_fd, PPDATADIR, &data); // output mode return rdata; }; gdzie: ppdev_fd jest deskryptorem urządzenia związanego z portem równoległym.

pozdrawiam

Radosław Korzeniewski

*) w chwili obecnej większość, jak nie wszystkie, dostępne układy portu równoległego mogą pracować jako porty dwukierunkowe, czasami należy w BIOSie ustawić odpowiedni tryb pracy portu

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required