Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Dopo più di un anno dal primo test drive ci siamo rimessi al volante della Renault 5 E-Tech Electric, questa volta utilizzandola come prima auto per circa due settimane. Scoprite con noi se il progetto convince ancora
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-04-2005, 17:23   #1
idt_winchip
Senior Member
 
L'Avatar di idt_winchip
 
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2226
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 , di cui 4 devono inviare alla periferica i valori da me voluti e devo poter essere in grado di leggere il valore del bit che ritorna.

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
idt_winchip è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2005, 00:48   #2
cionci
Senior Member
 
L'Avatar di cionci
 
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:
Originariamente inviato da idt_winchip
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?
Te lo impedisce... In Win NT/2k/XP non puoi utilizzare IN e OUT, ma devi passare solo attraverso le API...

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 00:54.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2005, 19:52   #3
idt_winchip
Senior Member
 
L'Avatar di idt_winchip
 
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2226
Quote:
Originariamente inviato da cionci
Te lo impedisce... In Win NT/2k/XP non puoi utilizzare IN e OUT, ma devi passare solo attraverso le API...

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...
Scusa ma non ho capito l'ultima frase.
Ti stavi riferendo al fatto di poter trasferire 8 bit invece che 4 o alla possibilità di comunicare con quelle API?
idt_winchip è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2005, 21:27   #4
vici_1
Senior Member
 
L'Avatar di vici_1
 
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
vici_1 è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2005, 23:01   #5
Brigante
Senior Member
 
L'Avatar di Brigante
 
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
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 00:34   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da vici_1
Consulta le istruzioni per installare
il Driver che consente
l'accesso all' I/O in ambiente
Win2000, WinNT& WinXP
Se volete ce l'ho anche io un driver che permette di usare IN e OUT sotto NT/2K/XP, ma mi sembra un po' come ammazzare un uccellino con un colpo di cannone... Quello che ho io si chiama giveio.sys...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 12:36   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ma aprirla con una stupidissima CreateFile no, eh?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 16:44   #8
cionci
Senior Member
 
L'Avatar di cionci
 
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...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 19:39   #9
71104
Bannato
 
L'Avatar di 71104
 
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...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 20:45   #10
Brigante
Senior Member
 
L'Avatar di Brigante
 
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
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 20:56   #11
sirus
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
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 22:43   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
eeeeeeeeeehhhhh???????? cosa fanno queste funziooooooooni???
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 07:39   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da sirus
usare le funzioni che mette a disposizione il C (che vanno direttamente sul bios) per la comunicazione?! mi sembra la soluzione + veloce
Parli delle funzioni bios* del Turbo C ? Funzionano solo se fai un programma a 16 bit... In altri ambienti non funzionano...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 07:41   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Brigante
C'è l'apposita dll che risolve tutto, non vedo perchè complicarsi la vita!
Secondo me quella DLL non è mai una buona scelta...perchè permette a qualsiasi programma di accedere direttamente all'hardware... Sinceramente io non metterei mai una DLL del genere in un software di produzione... Se si tratta di una programma di prova ben venga...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 07:52   #15
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Quote:
Originariamente inviato da cionci
Secondo me quella DLL non è mai una buona scelta...perchè permette a qualsiasi programma di accedere direttamente all'hardware... Sinceramente io non metterei mai una DLL del genere in un software di produzione... Se si tratta di una programma di prova ben venga...
Bè, anche se non c'è una dll posso fare un programma che accede all'hardware, utlizzando magari le stesse istruzioni che usa la dll al suo interno, no? Quindi...
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 07:53   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da 71104
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...
"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!"
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...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 07:54   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Brigante
Bè, anche se non c'è una dll posso fare un programma che accede all'hardware, utlizzando magari le stesse istruzioni che usa la dll al suo interno, no? Quindi...
No...perchè quella dll si basa su un driver che va installato con i privilegi di amminsitratore...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 08:15   #18
cionci
Senior Member
 
L'Avatar di cionci
 
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...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 14:47   #19
idt_winchip
Senior Member
 
L'Avatar di idt_winchip
 
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2226
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
idt_winchip è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2005, 15:38   #20
cionci
Senior Member
 
L'Avatar di cionci
 
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
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
Xbox Cloud Gaming si espande e arriva su...
Il riconoscimento facciale con IA per co...
MacBook Ultra: il nuovo design arriver&a...
Gli utenti passano più tempo su Instagra...
L'AI sta facendo guadagnare miliardi anc...
L'Odissea di Nolan rilancia Assassin's C...
Russia vieta il mining di criptovalute a...
Lenovo sta preparando il lancio di un Go...
L'intelligenza artificiale colpisce dove...
Xiaomi, si prepara ad aggiornare la fasc...
Rincari in arrivo per gli iPhone: i nuov...
Le edizioni fisiche dei giochi per PlayS...
Aziende IA comprano migliaia di libri ac...
L'IA frena gli utenti di Reddit: azioni ...
Questi pannelli solari non producono sol...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v