Newsgroup: it.comp.os.linux.development
Titolo: pin porta seriale / parallela

avrei bisogno di fare in modo che un
determinato pin della porta seriale (o della parallela)
vada ad 1 oppure a 0 a mia scelta.
avete qlc riga di codice?
grazie a tutti
--
H0m3r S1mps0n
...l'unica cosa certa è che non esiste nulla di certo...

 avete qlc riga di codice?
Un esempio in ruby:
# indirizzo della porta parallela
LP_ADDRESS = 0x378
# aprire in scrittura il device che consente l'accesso alle porte hardware
port = open('/dev/port', 'w')
# disabilitare il buffering
port.sync = true
# fare un seek all'indirizzo della parallela
port.seek(LP_ADDRESS, IO::SEEK_SET)
# scrivere un byte
port.write(0b10001001)
# scrivendo la posizione si sposta; per scrivere ancora, reimpostarlo
port.seek(LP_ADDRESS, IO::SEEK_SET)
# scrivere un altro byte
port.write(0b00001111)
# chiudere il device
port.close
Nota che non hai bisogno di essere root, ma il tuo utente deve essere
nel gruppo di /dev/port e il gruppo deve essere abilitato in
scrittura.
Massimiliano

 port.write(0b00001111)
quindi se io faccio:
port.write(0b10000000)
mando a logica 1 il primo pin
di output e tutti gli altri a zero, giusto?
e per sapere in che stato si trova
un determinato pin?
grazie


 e per sapere in che stato si trova un determinato pin?
In tutta sincerita` non ne ho idea, non ho mai provato il polling.
Non so neppure se e` verosimile una soluzione banale (port.seek
seguito da port.read).
Massimiliano

 LP_ADDRESS = 0x378
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA! guarda, già che ci 
siamo, perchè non lo facciamo in assembly? perchè scomodare Ruby quando 
per certe brutture esiste un linguaggio apposta?
/* true men do it in 20 bytes */
main:
movb  $0x89,%al
movw  $0x378,%dx
outb  %al,%dx
pushl $0
movl  $1,%ebx
int   $0x80
(non l'ho provato)
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!

 /* true men do it in 20 bytes */
From Jargon File (4.3.0, 30 APR 2001) [jargon]:
  Get a life! imp. Hacker-standard way of suggesting that the person to
     whom it is directed has succumbed to terminal geekdom (see {geek}).
     Often heard on {Usenet}, esp. as a way of suggesting that the target is
     taking some obscure issue of {theology} too seriously. This exhortation
     was popularized by William Shatner on a 1987 "Saturday Night Live"
     episode in a speech that ended "Get a _life_!", but some respondents
     believe it to have been in use before then. It was certainly in wide use
     among hackers for years before achieving mainstream currency via the
     sitcom "Get A Life" in 1990.
 
 

   Get a life! [...]
Ti rendi conto, vero, che il mondo va avanti solo grazie ai pruriti?


 seguito da port.read).
proverò :)
grazie mille
--
Denis
WebMaster di 
http://www.casafiorita.it
Fai i tuoi regali in modo unico ed originale!

 int   $0x80
Domanda: dove trovo documentazione riguardo l'assembler ? Mi hanno detto di 
guardare il kernel ma mi pare un po' eccessivo per me :)). Con l'assembler 
ci programmo i microcontrollori ma su un pc linux non saprei da dove 
partire. Soprattutto gli indirizzi dove li trovo? Sono uguali per tutti i 
pc? E il compilatore?
Insomma tutto :))
Grazie, Nicola.
-- 
______________________________
chi va pian va san e va lontan


Se non sei costretto, lascia stare l'assembler.
Alessandro.

 Se non sei costretto, lascia stare l'assembler.
E' solo per  giocare ;-)
