Differenze tra le versioni di "Uso delle Porte Parallele"

Da Gambas-it.org - Wikipedia.
(Nuova pagina: È possibile accedere a porta parallela utilizzando i file device come ''/dev/lp0.../dev/lpN''. Se, però, si ha bisogno di più controlli, ad esempio, e se si vuole essere in grado di...)
 
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
È possibile accedere a porta parallela utilizzando i file device come ''/dev/lp0.../dev/lpN''. Se, però, si ha bisogno di più controlli, ad esempio, e se si vuole essere in grado di scrivere porte input/output x86, si utilizza il file device: ''/dev/port''.
+
==Uso del file-device "/dev/lpN"==
 +
È possibile accedere a porta parallela utilizzando i file-device "''/dev/lpN'' " (laddove "N" sta per un numero progressivo a cominciare da 0).
  
  
==Uso del file device: ''/dev/port''==
+
==Uso del file-device "/dev/port""==
Un altro modo per accedere alle porte di I/O è quello di aprire il file device ''/dev/port'' (un dispositivo a caratteri, il numero primario 1, secondario 4) per la lettura e/o scrittura. Poi ''Seek'' sul byte appropriato nel file (posizione file 0 = porta 0x00, posizione file 1 = porta 0x01 e così via), e quindi ''Read'' o ''Write'' per scrivere un byte o una parola da o verso quel file device. Naturalmente, per far funzionare il programma si ha bisogno di poter accedere in ''lettura'' ed in ''scrittura'' al file device ''/dev/port''.
+
Se si ha bisogno di più controlli, ad esempio, se si vuole essere in grado di scrivere su porte input/output x86, si utilizza il file-device: "/dev/port".
 +
 
 +
Il modo per accedere alle porte di I/O è quello di aprire con "Open" il file-device "''/dev/port'' " (un dispositivo a caratteri, il numero primario 1, secondario 4) in lettura e/o scrittura. Poi usare "Seek" sul byte appropriato nel file (posizione file 0 = porta 0x00, posizione file 1 = porta 0x01 e così via), e quindi "Read" o "Write" per leggere da o scrivere verso quel file-device. Naturalmente, per far funzionare il programma si ha bisogno di poter accedere in ''lettura'' ed in ''scrittura'' al file device ''/dev/port''.
 +
<BR>Quindi, come root, si può fare ciò che è spiegato sopra: apertura del file-device "''/dev/port'' " con "Open" in lettura/scrittura in una posizione specifica:
 +
'''Public''' Sub Button1_Click()
 +
 +
  Dim hPorta As File
 +
  Dim iNUmeroPorta As Integer
 +
  Dim iValore As Byte
 +
 +
<FONT color=gray>' ''Invia il valore 42 alla porta 1:''</font>
 +
  iNumeroPorta = 1
 +
  iValore = 42
 +
 +
  hPorta = Open "/dev/port" For Read Write
 +
 
 +
  Seek #hPorta, iNumeroPorta
 +
  Write #hPorta, iValore
 +
 
 +
  hPorta.Close
 +
 
 +
'''End'''
 +
 
 +
 
 +
 
 +
==Approfondimenti==
 +
[1] http://www.linux.it/~rubini/docs/parallela/parallela.html

Versione attuale delle 18:29, 30 ott 2021

Uso del file-device "/dev/lpN"

È possibile accedere a porta parallela utilizzando i file-device "/dev/lpN " (laddove "N" sta per un numero progressivo a cominciare da 0).


Uso del file-device "/dev/port""

Se si ha bisogno di più controlli, ad esempio, se si vuole essere in grado di scrivere su porte input/output x86, si utilizza il file-device: "/dev/port".

Il modo per accedere alle porte di I/O è quello di aprire con "Open" il file-device "/dev/port " (un dispositivo a caratteri, il numero primario 1, secondario 4) in lettura e/o scrittura. Poi usare "Seek" sul byte appropriato nel file (posizione file 0 = porta 0x00, posizione file 1 = porta 0x01 e così via), e quindi "Read" o "Write" per leggere da o scrivere verso quel file-device. Naturalmente, per far funzionare il programma si ha bisogno di poter accedere in lettura ed in scrittura al file device /dev/port.
Quindi, come root, si può fare ciò che è spiegato sopra: apertura del file-device "/dev/port " con "Open" in lettura/scrittura in una posizione specifica:

Public Sub Button1_Click()

 Dim hPorta As File
 Dim iNUmeroPorta As Integer
 Dim iValore As Byte

' Invia il valore 42 alla porta 1:
 iNumeroPorta = 1
 iValore = 42

 hPorta = Open "/dev/port" For Read Write
 
 Seek #hPorta, iNumeroPorta
 Write #hPorta, iValore
 
 hPorta.Close
 
End


Approfondimenti

[1] http://www.linux.it/~rubini/docs/parallela/parallela.html