|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 402
|
[C] Gestire le porte
Ciao a tutti, volevo sapere se utilizzando il C è possibile gestire singolarmente i pin della porta parallela e della COM1 (quella con 9 pin). Ad esempio, mettiamo che un particolare cavo colleghi (dico dei numeri a caso) il pin 4 della LPT1 del PC A al pin 3 della COM1 del PC B. E' possibile per esempio far sì che il pc A invii un file specificatamente dal pin 4 della sua lpt1 e che il pc B riceva i dati dal suo pin 3 e li salvi in un file? Ho il brutto presentimento che se è possibile fare una cosa del genere serva l'assembly...
|
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
al contrario, in assembly non si può
o meglio, non si può più: siamo nell'era del tramonto della modalità protetta a 32 bit e del passaggio alle architetture a 64 bit, i programmi user mode non possono più accedere direttamente all'hardware da una vita ormai. ciò che chiedi è fattibilissimo ma il problema è che lo standard del C non lo prevede perché è uno standard indipendente dalla macchina, è uno standard che non ha a che fare con le specificità dell'hardware e quindi non conosce l'esistenza delle porte COM ed LPT; si tratta di un pregio che permette al linguaggio C di essere utilizzato anche su architetture che non hanno le porte COM ed LPT. di conseguenza la maniera di maneggiare le porte COM ed LPT varia da una piattaforma all'altra. la domanda chiave è: devi lavorare su Windows o su Linux? io posso consigliarti per Windows. su Windows si tratta di utilizzare alcune funzioni API Win32; questi link ti saranno utili: http://msdn2.microsoft.com/en-us/library/aa363858.aspx http://msdn2.microsoft.com/en-us/library/aa363196.aspx se ti servono informazioni più dettagliate per Windows di' pure. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
|
il problema non è tanto il C o l'assembly, ma come interfacciarsi con le due porte.
io ho provato a scrivere (in linux) sia un driver per la porta seriale che uno per la parallela e non ho messo una sola riga di assembly non puoi usare i pin della seriale a caso. ci sono quelli per il controllo di flusso e quelli per i dati. tu tra l'altro non ti interfacci con la porta seriale ma con l'UART che ti permette di lavorare a byte e non a bit. è anche vero che lavorando sui registri del UART puoi gestire i pin del controllo di flusso. tieni presente che quando lavori su una porta seriale usando il sistema operativo (presumo anche in win) stai aprendo un file sul quale leggi e scrivi byte, tutto senza aver bisogno dell'assembly. quello che non so (bisognerebbe leggere attentamente le specifiche della RS232 e della parallela) è come fare a connettere quelle due porte con un cavo. è senz'altro possibile dato che esistono dei convertitori parallela<->seriale bisogna solo capire come |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:56.



















