|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2225
|
Inviare/Ricevere dati dalla porta parallela
Ho bisogno di poter utilizzare la porta parallela per comunicare con un dispositivo da me costruito.
So che su windows (soprattutto NT) ci sono dei problemi per comunicare con la porta parallela. Il fatto è questo: devo sviluppare un applicazione in borland c++ builder che possa settare e acquisire il valore dei pin della porta parallela. Mi sono informato un po e credo di aver capito che le cose si complicano se voglio utilizzare più di 4 bit del registro dati. Per l'appunto io devo poter lavorare su 5 pin Avrei intenzione di collegare i primi 4 dal pin 2 al pin 5 (D0-D3) e il quinto....in qualche parte dove sia possibile leggere il contenuto...si..ma dove! E se me ne infischio di windows e dentro il sorgente C metto un codice in assembler con istruzioni di in/out funziona o windows mi impedisce di fare una cosa del genere anche a livello di assembler? help....mi serve per il progetto d'esame
__________________
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Re: Inviare/Ricevere dati dalla porta parallela
Quote:
C'è l'API Set/GetCommState...anche se mi sembra progettata più per la seriale... In teoria le linee aggiuntive per l'handshake sulla parallela ci sono...ti basterebbe leggere quelle e lasciare la parallela con 8 bit in uscita... Ultima modifica di cionci : 11-04-2005 alle 01:54. |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2225
|
Quote:
Ti stavi riferendo al fatto di poter trasferire 8 bit invece che 4 o alla possibilità di comunicare con quelle API?
__________________
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2002
Messaggi: 581
|
Non so se ti puo' essere utile , oppure se ne eri gia' a conoscenza, ma su questo sito molto interessante per programmare in assembler hanno scritto dei driver per utilizzare le porte parallele e seriali sotto gli SO win NT,2000,XP.
Infatti come dice cionci l'accesso tramite in,out sotto questi SO non e' possibile. Prova a vedere se c'e' qualche cosa o qualc'uno che puo' esserti d'aiuto. ecco il link alla pagina specifica : http://www.giobe2000.it/Consigli/Scarica_VediLPT_XP.htm e per ulteriori informazioni dalla pagina che ti ho segnalato, vai al link dove nel riquadro c'e' scritto : Consulta le istruzioni per installare il Driver che consente l'accesso all' I/O in ambiente Win2000, WinNT& WinXP |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Sulla rivista n° 221 (la penultima) di Nuova Elettronica c'è un progettino per testare la porta parallela, e con esso un programmino dimostrativo, scritto in VB6 che utilizza una dll che si chiama io.dll, con la quale si gestisce appunto la porta parallela sotto Windows 2000 e XP senza alcun problema.
__________________
Careful With That Axe |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ma aprirla con una stupidissima CreateFile no, eh?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Con la CreateFile la parallela viene configurata in amniera diversa da come serve a lui...
|
|
|
|
|
|
#9 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
hmmm... perché?
![]() non è sufficiente scrivere e basta? se non gli interessa scrivere solo su certi bit basta che invia un byte in cui in corrispondenza di quei bit c'è 0 mi pare difficile che da user mode non si possa controllare la parallela... |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
C'è l'apposita dll che risolve tutto, non vedo perchè complicarsi la vita!
__________________
Careful With That Axe |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
usare le funzioni che mette a disposizione il C (che vanno direttamente sul bios) per la comunicazione?!
mi sembra la soluzione + veloce |
|
|
|
|
|
#12 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
eeeeeeeeeehhhhh???????? cosa fanno queste funziooooooooni???
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Quote:
__________________
Careful With That Axe |
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Vuole 4 bit in uscita ed uno in ingresso... Se guardi qui: http://support.microsoft.com/default...79&Product=vb6 C'è scritto you cannot read dato from parallel port... Ripeto...c'è la funzione GetCommState da cui credo che si possa leggere anche lo stato delle linee aggiuntive... Tutto sta nel vedere a quale linea corrispondono... |
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se guardi qui: http://digilander.libero.it/toniobru...%20Control.htm
I pin utilizzabili per l'input in modalità SPP (cioè non ECP o EPP in cui le linee sono bidirezionali) sono dall'11 al 15... Tutto sta ora vedere se con GetCommState puoi leggerne lo stato... Ma come vedi quel programma non funziona su Windows 2k/XP... http://www.risorsehitech.it/elettron...parallel/2.php Sopra si può vedere che il pin usato per il busy...quindi un pin di ingresso è il pin 11 (che anche quello usato per l'handshake con la parallela)... Ora si tratta di vedere come si può leggerne lo stato... Attenzione non dico di programmare l'interfaccia con handshake (cosa possibile con SetCommState), che renderebbe tutto più complicato, anche se comunque fattibile implementando un protocollo di timing fra il raise del busy (dopo ad esempio aver mandato un particolare dato in uscita) e il suo rilascio...ma di lasciare tutto senza handshake e monitorare costantemente il livello di queste linee... |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2225
|
innanzitutto vi ringrazio per le molteplici risposte ricevute...scusate se rispondo solo ora ma nn son potuto accedere al pc per un po..
Avete parlato di due file: io.dll e giveio.sys. Come funzionano? La cosa ideale che sospetto non troverò mai sarebbe una funzione che permette di settare e ricevere il bit del pin del bit voluto. Trovai una funzione in c tempo fa, ma purtroppo era per linux e io ho la necessità di sviluppare il prog con il builder c++. Mi fareste un grande favore se mi potreste dire dove trovare il file io.dll e giveio.sys
__________________
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Qui ci sono i link per il download...e nel file di test in C puoi vedere come usarlo...
http://www.physik.rwth-aachen.de/gro...n/arcs_nt.html |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:30.




















