PDA

View Full Version : Parallela in C


Matro
09-11-2003, 17:30
Dove posso trovare info riguardo al comando della porta parallela in c? ah, un'altra cosa, io come compilatore uso il djgpp, ma è scomodino ogni volta fare il prog in blocco note e compilare da riga di comando.. c'è qualche ide veloce da scaricare ma versatile? (ovvero non turboc, visto che non permette di caricare librerie..)

VegetaSSJ5
09-11-2003, 17:48
per quanto riguarda la porta parallela non saprei che dirti, sono alle prime armi... :cry: :D :D cmq come ide hai mai provato dev-c++? secondo me è ottimo...
www.bloodshed.net

Matro
09-11-2003, 18:14
ottimo ide, grazie :) .. una sola domanda: come posso fare per metterci dentro delle librerie?

cionci
09-11-2003, 18:29
Per la parallela sotto Windows è un problema... Devi operare con le API di Windows...

CreateFile
WriteFile
ReadFile
CloseFile
DeviceIoControl

Luc@s
09-11-2003, 18:31
Originariamente inviato da cionci
Per la parallela sotto Windows è un problema... Devi operare con le API di Windows...

CreateFile
WriteFile
ReadFile
CloseFile
DeviceIoControl

e come le uso??

Su linux?

supertondo
09-11-2003, 18:50
Originariamente inviato da cionci
Per la parallela sotto Windows è un problema... Devi operare con le API di Windows...

CreateFile
WriteFile
ReadFile
CloseFile
DeviceIoControl


Qualche link con qualche esempio, un tutorial?

Sarebbe possibile anche riconoscere una periferica? (così mi programmo un programma per gestire il mio cell...immaginate...

Luc@s
09-11-2003, 18:52
Originariamente inviato da supertondo
Sarebbe possibile anche riconoscere una periferica? (così mi programmo un programma per gestire il mio cell...immaginate...

un programma utile x sfidare se stessi;)

Matro
09-11-2003, 19:33
Originariamente inviato da supertondo
Qualche link con qualche esempio, un tutorial?

Sarebbe possibile anche riconoscere una periferica? (così mi programmo un programma per gestire il mio cell...immaginate...

tutto è possibile, ma non attacchi 2 cavi e fai installazione nuovo hardware :D ! Devi fare l'interfaccia, driver e company..

Continuando il discorso parallela, non mi interessa per windows, infatti dovrei comandare il presepe da un 486, quindi dos :)

supertondo
09-11-2003, 19:37
Non so e non vorrei dire una fesseria, ma non penso sia impossibile e non penso servano i driver...cmq ho 16 anni e quel poco che so l'ho imparato da autodidatta

supertondo
09-11-2003, 19:42
Originariamente inviato da Luc@s
un programma utile x sfidare se stessi;)

Sempre sfidarsi!!! Se no non c'è stimolo per andare avanti. (che filosofo)
;) ;) ;)

Matro
09-11-2003, 19:51
Originariamente inviato da supertondo
Non so e non vorrei dire una fesseria, ma non penso sia impossibile e non penso servano i driver...cmq ho 16 anni e quel poco che so l'ho imparato da autodidatta


non ho mai detto che è impossibile, anzi, è possibilissimo, visto che esistono ;) , cmq anche io ho 15 anni e quel che so l'ho imparato da autodidatta, a scuola non si fa un cavolo di interessante (benché abbia scelto un itis ad indirizzo informatico), e dopo la moratti mi va a mettere informatica in 1 elementare :rolleyes:

cionci
10-11-2003, 03:32
Originariamente inviato da supertondo
Qualche link con qualche esempio, un tutorial?

Sarebbe possibile anche riconoscere una periferica? (così mi programmo un programma per gestire il mio cell...immaginate...
www.google.it ;)

cionci
10-11-2003, 03:33
Originariamente inviato da Luc@s
Su linux?
Su Linux no... E' tutto diverso...

cionci
10-11-2003, 03:44
Originariamente inviato da Matro
Continuando il discorso parallela, non mi interessa per windows, infatti dovrei comandare il presepe da un 486, quindi dos :)
Per DOS bisogna leggere e scrivere agli indirizzi della parallela (su 0x378 ad esempio ci puoi scrivere ed il dato in uscita sui pin dei dati)...
Con i compilatori Borland per DOS si usa inportb e ouportb...con i compilatori Microsoft per DOS si usa inp e outp...
Le linee di stato si possono usare come linee di input...

http://www.textfiles.com/computers/biprint.txt

mjordan
10-11-2003, 09:33
Non è un argomento stupido e non è un argomento che può essere affrontato in un thread, perchè è la tipica domanda alla "come si costruisce una macchina"? ;)

http://www.everythinglinux.com.au/item/PP5134?elinux=d82d30b820a776e3e56a4fc92b9ffb0a

Matro
10-11-2003, 15:36
Originariamente inviato da cionci
Per DOS bisogna leggere e scrivere agli indirizzi della parallela (su 0x378 ad esempio ci puoi scrivere ed il dato in uscita sui pin dei dati)...
Con i compilatori Borland per DOS si usa inportb e ouportb...con i compilatori Microsoft per DOS si usa inp e outp...
Le linee di stato si possono usare come linee di input...

http://www.textfiles.com/computers/biprint.txt

interessante.. che libreria header devo richiamare per utilizzare queste funzioni? (uso il dev-c++, che è quindi basato sul mingw..)

cionci
11-11-2003, 02:14
Con MinGW realizzi programmi per Windows...quindi, a meno di gabole, non puoi avere accesso diretto alla porta... Devi usare CreateFile etc etc come scritto sopra....

feyd
11-11-2003, 10:03
io ho realizzato un programma dos che scriveva e leggeva una RAM tramite parallela.
la parallela è mappata come 24 bit ad un certo indirizzo di I/O (tipicamente 0x378 come ti è stato detto, in ogni caso tale indirizzo è settabile nel bios).
è caratterizzata da 3 parole
0x378 -> Dati
0x379 -> Controllo
0x380 -> Stato
Attraverso i bit di controllo controlli (scusa il gioco di parole) i piedini di controllo sulla parallela inoltre un bit di stato ti permette di settare l'input e l'output (in caso di input lo stato di riposo dei piedini di dato è 1 - sono tutti pullappati)
La parola di Stato ovviamente ti dice anche lo stato della porta.
Sotto dos non hai problemi e puoi fare tutti gli I/O che vuoi. Sotto sistemi con in modalità protetta (tipo NT) devi acquisire l'accesso alla risorsa però non ti so dire come il tutto avvenga per la parallela. :-(
Occhio che la parallela è rumorosa e se vuoi comandare un dispositivo veloce un disturbo potrebbe essere preso come un clock sulla parallela (a me succedeva con la RAM).
Feyd

Matro
26-11-2003, 20:41
Originariamente inviato da feyd
io ho realizzato un programma dos che scriveva e leggeva una RAM tramite parallela.
la parallela è mappata come 24 bit ad un certo indirizzo di I/O (tipicamente 0x378 come ti è stato detto, in ogni caso tale indirizzo è settabile nel bios).
è caratterizzata da 3 parole
0x378 -> Dati
0x379 -> Controllo
0x380 -> Stato
Attraverso i bit di controllo controlli (scusa il gioco di parole) i piedini di controllo sulla parallela inoltre un bit di stato ti permette di settare l'input e l'output (in caso di input lo stato di riposo dei piedini di dato è 1 - sono tutti pullappati)
La parola di Stato ovviamente ti dice anche lo stato della porta.
Sotto dos non hai problemi e puoi fare tutti gli I/O che vuoi. Sotto sistemi con in modalità protetta (tipo NT) devi acquisire l'accesso alla risorsa però non ti so dire come il tutto avvenga per la parallela. :-(
Occhio che la parallela è rumorosa e se vuoi comandare un dispositivo veloce un disturbo potrebbe essere preso come un clock sulla parallela (a me succedeva con la RAM).
Feyd

scusate se non avevo scritto + ma avevo perso di vista la discussione.. in che linguaggio hai programmato il tuo programma?

cionci
27-11-2003, 10:51
Ad esempio, questo codice funzina anche su MinGW...e, se non hai una stampante GDI (che ha bisogno di un ulteriore layer software), ti scrive sulla stampante...

http://www.firststeps.ru/mfc/winapi/r.php?12

Se cerchi su google "CreateFile LPT1" o "CreateFile LPT1 DeviceIOControl" troverai decine di link a riguardo...
DeviceIOControl serve per controllare le linee di stato della parallela...

Questi sono interessanti (solo il codice, il resto nonc i si capisce niente):
http://www.toyoshima-house.net/win32/parport_ja.html

E questo:
http://handsoff.infomedia.it/cgi-bin/lwgate/DEV-IT/archives/dev-it.log.9911/Subject/article-325.html

gurutech
04-12-2003, 00:09
ne approfitto per agganciarmi con questo
http://forum.hwupgrade.it/showthread.php?s=&threadid=573782

Goldrake75
04-12-2003, 01:33
Questi siti contengono cose interessanti riguardo il funzionamento
della porta parallela.

CLICCA (http://www.giobe2000.it/HW/Parallela/Pag/Home.asp)

CLICCA (http://www.ecn.org/sh404/projects/parallela.html)