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.
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 portuHave something to add? Share your thoughts — no account required.
Ask the community — no account required