RTV forum PL | NewsGroups PL

Inicjalizacja portu LPT w DOS do sterowania AVR w IBM ThinkPad 380XD?

LPT + DOS i AVR

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Inicjalizacja portu LPT w DOS do sterowania AVR w IBM ThinkPad 380XD?

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 Smile 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

elektroda NewsGroups Forum Index - Elektronika Polska - Inicjalizacja portu LPT w DOS do sterowania AVR w IBM ThinkPad 380XD?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map