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