Ktos ma doswiadczenia z portem LPT ? prosze o pomoc

0

Witam, wyszedl mi troche przydlugi post sorry za to ale staralem sie dokladnie wytlumaczyc moj problem, szukalem informacji na forum ale tego nigdzie nie ma.
Jezeli ktos wie w czym rzecz bylbym niezmiernie wdzieczny gdyby pomogl mi wyjsc z opresji, robie program do pracy dyplomowej i czasu zaczyna brakowac :( program robie w C++ ale to nie ma znaczenia

Znalazlem kompotent (TVicLPT) ktorym moge obslugiwac przerwania z LPT, ladnie to dziala i wszystko byloby w porzadku gdyby nie fakt ze z niewiadomych mi powodow pod win XP port LPT tak jakby nazwe to "resetuje sie" :(

Wyglada to tak: aby obslugiwac przerwania nalezy podac stan wysoki na rejestr CONTROL LPT na bit 4 (to jest Enable IRQ Via ACK Line).
Robie tak i przerwania dzialaja ale tylko przez jakis czas bo wkrotce nastepuje to "resetowanie" po ktorym bit 4 jest wyzerowany, przerwania przez to przestaja dzialac a w dodatku jeszcze zapala sie bit2 danych wyjsciowych (D2)...

Przeszukalem internet aby zrozumiec i zlikwidowac problem i nic :( mam kilka stronek o LPT jest tam wszystko ale ani slowa o tym resetowaniu pod XP.

Dodam ze przeprowadzilem badania i doszedlem do kilku wnioskow:

  • "reset" nastepuje zawsze 11 razy po czym juz nic sie zlego nie dzieje z portem (11 razy czyli gdy nastapi reset ustawiam znow bit4 tak ze przerwania dzialaja po czym nastepuje znow "reset" i tak w kolko 11 razy)

  • powyzsze sprawdzilem na 3 komputerach wyniki identyczne czyli to musi byc jakies normalne zachowanie!

  • "reset" nie ma miejsca pod DOSem jak i pod win9x

  • z tym ze pod win9x wyglada to tak jakby juz po starcie systemu port LPT byl "zresetowany" 11 razy poniewaz D2 jest ustawione na 1 czyli tak jak po "resecie" pod win XP - co mi daje nadzieje ze pod win XP mozna cos zrobic aby port tez po starce systemu i uruchomieniu programu juz nie robil cyrkow

Naprawde prosze o pomoc, jezeli tylko ktos cos wie bylbym wdzieczny

0

Obsługa bezpośredniego dostępu do portów jest pod XP po prostu zablokowana. Jest na to kilka sposobów.

  1. (nie zawsze działa) Uruchomić program w trybie zgodności z win98 (pklik na exe -- właściwości)
  2. Zainstalować jakiś sterownik bezpośredniego dostęp do portu (np. port95nt3.exe)
  3. Tak napisać program aby sam był sterownikiem portu (nie pytaj jak.. mamy na 4p artukuły na ten temat [w dziale delphi coś się znajdzie])
0

Ale mi obsluga portow spokojnie dziala i pod 98 i pod XP, mam wlasnie sterownik o czym pisalem - TVicLPT platny z obsluga przerwan a takze Inpout32.dll on nie obsluguje przerwan, ale nie o przerwania sie tu rozchodzi nawet

Sek w tym ze port pod XP tak dziwnie sie zachowuje czyli zeruje bit4 (S6) i ustawia bit2 (D2) bez wzgledu na to czy nawet odpali sie program i mam to potwierdzone na 3 kompach

Mam nadzieje ze ktos wie czemu tak sie dzieje i jak to obejsc...

0

Chyba znalazlem rozwiazanie problemu :) na razie dziala

http://www.elnec.com/appnotes/winxp1uk.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1