Differenze tra le versioni di "Uso delle Porte Parallele"

Da Gambas-it.org - Wikipedia.
 
(4 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 con ''Open'' il file device ''/dev/port'' (un dispositivo a caratteri, il numero primario 1, secondario 4) in lettura e/o scrittura. Poi l'uso di ''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''. Questo metodo è probabilmente più lento del metodo normale precedentemente descritto, ma non ha bisogno di ottimizzazioni in compilazione. Non ha, inoltre, bisogno di accesso da ''root'', se si vuole accedere al file device ''/dev/port'' come un utente non-root o di gruppo; ma questa è una cosa poco opportuna da fare in termini di sicurezza del sistema, in quanto è possibile danneggiarlo, forse anche ottenere l'accesso come root, usando ''/dev/port'' per accedere ai dischi fissi, schede di rete, ecc direttamente.
+
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".
<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:
+
 
 +
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()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
Riga 11: Riga 14:
 
   Dim iValore As Byte
 
   Dim iValore As Byte
 
   
 
   
  <FONT color=#006400>' ''Invia il valore 42 alla porta 1:''</font>
+
  <FONT color=gray>' ''Invia il valore 42 alla porta 1:''</font>
  iNumeroPorta = 1
+
  iNumeroPorta = 1
  iValore = 42
+
  iValore = 42
 
  hPorta = Open "/dev/port" For Read Write
 
  Seek #hPorta, iNumeroPorta
 
  Write #hPorta, iValore
 
 
   
 
   
 +
  hPorta = Open "/dev/port" For Read Write
 +
 
 +
  Seek #hPorta, iNumeroPorta
 +
  Write #hPorta, iValore
 +
 
 +
  hPorta.Close
 +
 
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
==Approfondimenti==
 +
[1] http://www.linux.it/~rubini/docs/parallela/parallela.html

Versione attuale delle 17: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