Goto page 1, 2 Next
BartoszK
Guest
Thu Oct 19, 2006 11:02 am
Witam
Mam zamiar sterować pewnym urządzeniem przez port lpt. W win98 i xp
program bez problemu wysyła dane, lecz niestety w dosie jest z tym
problem. Cholera jedna po uruchomieniu systemu nie chce za nic zmienić
stanu portu. Dodam że po włączeniu komputera, podczas przejścia przez
bios, stan portu zmienia się, to samo podczas odpalania programu
testowego w biosie.
Musze niestety korzystać z dos'a ponieważ lpt wysyła dane do avr który
z kolei steruje silnikiem krokowym - sterowanie tym spod win98 powoduje
to że silnik 'szarpie' i nierówno pracuje. Komputer na którym testuje
całe to ustrojstwo to stary IBM ThinkPad 380XD.
Pamiętam że jakiś czas temu na starym PC (stacjonarnym) podobnym
programem mogłem zapalać diody led używając tylko dos'a.
Jak zainicjować Transmisje w dosie do LPT ?
Czy ktoś miał już podobny problem ?
pozdrawiam
bartek
Waldemar
Guest
Thu Oct 19, 2006 11:13 am
BartoszK schrieb:
Quote:
Witam
Mam zamiar sterować pewnym urządzeniem przez port lpt. W win98 i xp
program bez problemu wysyła dane, lecz niestety w dosie jest z tym
problem. Cholera jedna po uruchomieniu systemu nie chce za nic zmienić
stanu portu. Dodam że po włączeniu komputera, podczas przejścia przez
bios, stan portu zmienia się, to samo podczas odpalania programu
testowego w biosie.
Musze niestety korzystać z dos'a ponieważ lpt wysyła dane do avr który
z kolei steruje silnikiem krokowym - sterowanie tym spod win98 powoduje
to że silnik 'szarpie' i nierówno pracuje. Komputer na którym testuje
całe to ustrojstwo to stary IBM ThinkPad 380XD.
Pamiętam że jakiś czas temu na starym PC (stacjonarnym) podobnym
programem mogłem zapalać diody led używając tylko dos'a.
Jak zainicjować Transmisje w dosie do LPT ?
Czy ktoś miał już podobny problem ?
nie wiem jak to robisz na win-xp, ale pod dosem to jest bardzo proste.
Ustawiasz port jako standartowy lpt w biosie a potem piszesz
bezpośrednio na port (funkcja outb).
Waldek
BartoszK
Guest
Thu Oct 19, 2006 11:20 am
Waldemar napisał(a):
Quote:
nie wiem jak to robisz na win-xp, ale pod dosem to jest bardzo proste.
Ustawiasz port jako standartowy lpt w biosie a potem piszesz
bezpośrednio na port (funkcja outb).
Waldek
Przy dosowej komendzie "dir >> prn" albo "dir >> lpt1" wyrzuca mi:
"Błąd zapisu podczas zapisu w urządzeniu LPT1
przerwij, ponów, zignoruj, zrezygnuj
Błąd przerwania 24"
coś chyba nie jest tak...
pozdrawiam
bartek
Mariusz Dybiec
Guest
Thu Oct 19, 2006 11:27 am
BartoszK napisał(a):
Quote:
Witam
Mam zamiar sterować pewnym urządzeniem przez port lpt. W win98 i xp
program bez problemu wysyła dane, lecz niestety w dosie jest z tym
problem. Cholera jedna po uruchomieniu systemu nie chce za nic zmienić
stanu portu. Dodam że po włączeniu komputera, podczas przejścia przez
bios, stan portu zmienia się, to samo podczas odpalania programu
testowego w biosie.
Musze niestety korzystać z dos'a ponieważ lpt wysyła dane do avr który
z kolei steruje silnikiem krokowym - sterowanie tym spod win98 powoduje
to że silnik 'szarpie' i nierówno pracuje. Komputer na którym testuje
całe to ustrojstwo to stary IBM ThinkPad 380XD.
Lepiej byłoby gdybyś zrobił transmisję na RS232. Działa niezależnie do
systemu.
Quote:
Pamiętam że jakiś czas temu na starym PC (stacjonarnym) podobnym
programem mogłem zapalać diody led używając tylko dos'a.
Jak zainicjować Transmisje w dosie do LPT ?
Czy ktoś miał już podobny problem ?
Być może aby pisać do rejestrów portu LPT trzeba wyłączyć port LPT w
Biosie żeby system nie próbował inicjować drukarki.
--
Pozdrawiam
MD
Waldemar
Guest
Thu Oct 19, 2006 11:33 am
BartoszK schrieb:
Quote:
Waldemar napisał(a):
nie wiem jak to robisz na win-xp, ale pod dosem to jest bardzo proste.
Ustawiasz port jako standartowy lpt w biosie a potem piszesz
bezpośrednio na port (funkcja outb).
Waldek
Przy dosowej komendzie "dir >> prn" albo "dir >> lpt1" wyrzuca mi:
"Błąd zapisu podczas zapisu w urządzeniu LPT1
przerwij, ponów, zignoruj, zrezygnuj
Błąd przerwania 24"
coś chyba nie jest tak...
jest nie tak, bo przy ww komendach dos oczekuje drukarki, której nie
masz. Tylko zrozumiałem, że chcesz to robić programowo, a nie przez
kopiowanie pliku. To jak to jest?
Waldek
J.F.
Guest
Thu Oct 19, 2006 11:39 am
On Thu, 19 Oct 2006 13:20:36 +0200, BartoszK wrote:
Quote:
Przy dosowej komendzie "dir >> prn" albo "dir >> lpt1" wyrzuca mi:
"Błąd zapisu podczas zapisu w urządzeniu LPT1
przerwij, ponów, zignoruj, zrezygnuj
Błąd przerwania 24"
coś chyba nie jest tak...
A czy twoje urzadzenie poprawnie udaje drukarke - tzn generuje sygnal
Busy i/lub Ack ?
Bo bios/dos/windows pieknie wysylaja dane do drukarki, ale wlasnie "do
drukarki".
Mozesz sie jeszcze zastanowic nad udawaniem drukarki w trybach
rozszerzonych [EPP].
J.
BartoszK
Guest
Thu Oct 19, 2006 11:42 am
Mariusz Dybiec napisał(a):
Quote:
Być może aby pisać do rejestrów portu LPT trzeba wyłączyć port LPT w
Biosie żeby system nie próbował inicjować drukarki.
Z ciekawości przed momentem wygrzebałem starą drukarkę igłową star-LC10
, po komendzie 'dir >> prn" bez problemu wydrukowała to co miała
wydrukować. Czy przyczyną może być 'wiszący w powietrzu' jakiś pin np.
Busy albo Select ?
pozdrawiam
bartek
BartoszK
Guest
Thu Oct 19, 2006 11:45 am
Waldemar napisał(a):
Quote:
coś chyba nie jest tak...
jest nie tak, bo przy ww komendach dos oczekuje drukarki, której nie
masz. Tylko zrozumiałem, że chcesz to robić programowo, a nie przez
kopiowanie pliku. To jak to jest?
Chce to robić programowo, tym poleceniem 'dir >> prn' chciałem tylko
sprawdzić czy cokolwiek się zmieni na porcie.
Waldemar
Guest
Thu Oct 19, 2006 11:46 am
BartoszK schrieb:
Quote:
Mariusz Dybiec napisał(a):
Być może aby pisać do rejestrów portu LPT trzeba wyłączyć port LPT w
Biosie żeby system nie próbował inicjować drukarki.
Z ciekawości przed momentem wygrzebałem starą drukarkę igłową star-LC10
, po komendzie 'dir >> prn" bez problemu wydrukowała to co miała
wydrukować. Czy przyczyną może być 'wiszący w powietrzu' jakiś pin np.
Busy albo Select ?
przeca ci napisałem. Chcesz programowo czy naprawdę udawać drukarkę? Jak
ma się twoje ustrojstwo zachowywać drukarkowo, to musisz zachować
protokół drukarki, czyli odpowiednio wysterować piny busy, ack, pe. Jak
programowo, to wystarczy pisać na adres IO portu, czyli 0x378, 0x278,
0x3BC czy jaki adres tam masz.
Waldek
BartoszK
Guest
Thu Oct 19, 2006 11:49 am
J.F. napisał(a):
Quote:
A czy twoje urzadzenie poprawnie udaje drukarke - tzn generuje sygnal
Busy i/lub Ack ?
Bo bios/dos/windows pieknie wysylaja dane do drukarki, ale wlasnie "do
drukarki".
Mozesz sie jeszcze zastanowic nad udawaniem drukarki w trybach
rozszerzonych [EPP].
I tu właśnie jest chyba cały problem, stąd następne pytanie:
Na jakie piny podać odpowiednie stany tak aby system myślał że ma
podłączoną drukarkę ?
pozdrawiam
bartek
BartoszK
Guest
Thu Oct 19, 2006 11:51 am
Waldemar napisał(a):
Quote:
przeca ci napisałem. Chcesz programowo czy naprawdę udawać drukarkę? Jak
ma się twoje ustrojstwo zachowywać drukarkowo, to musisz zachować
protokół drukarki, czyli odpowiednio wysterować piny busy, ack, pe. Jak
programowo, to wystarczy pisać na adres IO portu, czyli 0x378, 0x278,
0x3BC czy jaki adres tam masz.
Waldek
Ok

teraz już wiem że to urządzenie ma udawać prawdziwą drukarkę.
Stąd pytanie Waldemarze:
Na jakie piny podać odpowiednie stany tak aby system myślał że ma
podłączoną drukarkę ?
bartek
Waldemar
Guest
Thu Oct 19, 2006 11:53 am
BartoszK schrieb:
Quote:
Waldemar napisał(a):
coś chyba nie jest tak...
jest nie tak, bo przy ww komendach dos oczekuje drukarki, której nie
masz. Tylko zrozumiałem, że chcesz to robić programowo, a nie przez
kopiowanie pliku. To jak to jest?
Chce to robić programowo, tym poleceniem 'dir >> prn' chciałem tylko
sprawdzić czy cokolwiek się zmieni na porcie.
no to nie grzeb tym dalej, bo tylko szlag cię trafi. W jakim języku
piszesz?
W c po prostu outp(0x378,val) wysyła byte val na D0-D7 LPT1. Musisz
tylko sprawdzić adres portu w biosie. Coponiektóre laptopy mają prn na
adresie 0x3BC.
Waldek
Mariusz Dybiec
Guest
Thu Oct 19, 2006 11:56 am
BartoszK napisał(a):
Quote:
J.F. napisał(a):
A czy twoje urzadzenie poprawnie udaje drukarke - tzn generuje sygnal
Busy i/lub Ack ?
Bo bios/dos/windows pieknie wysylaja dane do drukarki, ale wlasnie "do
drukarki".
Mozesz sie jeszcze zastanowic nad udawaniem drukarki w trybach
rozszerzonych [EPP].
I tu właśnie jest chyba cały problem, stąd następne pytanie:
Na jakie piny podać odpowiednie stany tak aby system myślał że ma
podłączoną drukarkę ?
/ACK (10) stan niski oznacza dotowość odebrania nowego bajtu
BUSY(11) wysoki oznacza stan off-laine - czyli musi być niski
PAP(12) oznacza brak papieru - czyli ma być niski
ONOF(13) syganlizuje obecność drukarki - ma byc wysoki
/ERR(15) niski stan oznacza błąd drukarki - ma być wysoki
--
Pozdrawiam
MD
BartoszK
Guest
Thu Oct 19, 2006 11:57 am
Waldemar napisał(a):
Quote:
BartoszK schrieb:
Waldemar napisał(a):
coś chyba nie jest tak...
jest nie tak, bo przy ww komendach dos oczekuje drukarki, której nie
masz. Tylko zrozumiałem, że chcesz to robić programowo, a nie przez
kopiowanie pliku. To jak to jest?
Chce to robić programowo, tym poleceniem 'dir >> prn' chciałem tylko
sprawdzić czy cokolwiek się zmieni na porcie.
no to nie grzeb tym dalej, bo tylko szlag cię trafi. W jakim języku
piszesz?
W c po prostu outp(0x378,val) wysyła byte val na D0-D7 LPT1. Musisz
tylko sprawdzić adres portu w biosie. Coponiektóre laptopy mają prn na
adresie 0x3BC.
Waldek
Do testów używam tego programu:
http://www.luberth.com/cstep/
O ile mi wiadomo jest pisany w C, drugim programem na którym sprawdzałem
to ustrojstwo to
http://www.cnczeus.com/download/ i za cholerę ani na
jednym ani na drugim w dosie nie ma żadnej zmiany na porcie. Co
śmieszniejsze jak uruchomię te programy spod win98 wszystko śmiga
wyśmienicie.
pozdrawiam
bartek
BartoszK
Guest
Thu Oct 19, 2006 11:58 am
Waldemar napisał(a):
Quote:
BartoszK schrieb:
Waldemar napisał(a):
coś chyba nie jest tak...
jest nie tak, bo przy ww komendach dos oczekuje drukarki, której nie
masz. Tylko zrozumiałem, że chcesz to robić programowo, a nie przez
kopiowanie pliku. To jak to jest?
Chce to robić programowo, tym poleceniem 'dir >> prn' chciałem tylko
sprawdzić czy cokolwiek się zmieni na porcie.
no to nie grzeb tym dalej, bo tylko szlag cię trafi. W jakim języku
piszesz?
W c po prostu outp(0x378,val) wysyła byte val na D0-D7 LPT1. Musisz
tylko sprawdzić adres portu w biosie. Coponiektóre laptopy mają prn na
adresie 0x3BC.
Waldek
Do testów używam tego programu:
http://www.luberth.com/cstep/
O ile mi wiadomo jest pisany w C, drugim programem na którym sprawdzałem
to ustrojstwo to
http://www.cnczeus.com/download/ i za cholerę ani na
jednym ani na drugim w dosie nie ma żadnej zmiany na porcie. Co
śmieszniejsze jak uruchomię te programy spod win98 wszystko śmiga
wyśmienicie.
pozdrawiam
bartek
Goto page 1, 2 Next