|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Comandare la parallela...........
Dovrei fare un piccolo programmino in C che mi permetta di accendere/spegnere uno dei bit di dati della porta parallela.
In Dos questo lo sapevo fare, ma in linux non so da dove partire. Mi potete dare qualche dritta o link? Possibilmente una cosa che non necessiti lo studio completo del kernel ![]() ![]() Grazie. Ciao. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
http://people.redhat.com/twaugh/parport/html/x916.html
Guarda in particolare l'implementazione di write_printer che fa uso della PPWDATA ioctl. Sposto nella sez. Programmazione.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Ero sicuro che la risposta a questo quesito sarebbe arrivata da te
![]() Grazie. Ciao. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Estrapolando varie informazioni dal web, ho scritto il programma che vedi sotto e per quello che mi serve funziona alla perfezione.
Vorrei solo capire se un programma scritto in questo modo mi può creare qualche problema (tipo: compatibilità, stabilità ecc. ecc.) #include <stdio.h> #include <unistd.h> #include <asm/io.h> #define BASE 0x378 int main() { printf("Acceso\n"); ioperm(0x378, 5, 1); outb(1, 0x378); getch(); outb(0, 0x378); printf("Spento"); ioperm(0x378, 5, 0); } Logicamente queste poche righe sono solo una prova, poi a me servirà una cosa moooooooooolto più complessa ![]() Grazie. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Un programma simile è da bannaggio immediato
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Quote:
![]() Comunque, sto procedendo con il link che mi hai dato. Grazie ancora. |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
![]() C'è un driver che ti consente l'accesso alla porta parallela? Usa quello diamine, e vedrai che il tuo programma funzionerà ancora nel 2153 sul Pentium 18 a 93 THz ![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:10.