D
Dirk
Mitglied
Moin!
Ich möchte Bits des Parallelports setzen, um damit eine kleine elektronische Schaltung zu steuern. Ich habe dafür zwei Varianten gefunden:
1.) direktes Beschreiben des Ports per outb()
2.) Verwendung der Gerätedatei /dev/lp0
Ersteres funktioniert tadellos, nur benötigt das Programm root-Rechte, daher kommt es für mich nicht in Frage.
Bei der zweiten Variante habe ich Probleme. Ich mache folgendes:
Das Programm läuft bis write() durch, bleibt aber beim Schreiben hängen.
Wenn ich nen zufälligen String in /dev/lp0 schreibe, z.B. durch:
Kommt der Befehl auch nicht zum Ende, sondern bleibt stecken.
Woran kann das liegen? Hab ich das Prinzip so einer Gerätedatei falsch verstanden??
Vielen Dank für eure Hilfe!
Mfg Dirk
Ich möchte Bits des Parallelports setzen, um damit eine kleine elektronische Schaltung zu steuern. Ich habe dafür zwei Varianten gefunden:
1.) direktes Beschreiben des Ports per outb()
2.) Verwendung der Gerätedatei /dev/lp0
Ersteres funktioniert tadellos, nur benötigt das Programm root-Rechte, daher kommt es für mich nicht in Frage.
Bei der zweiten Variante habe ich Probleme. Ich mache folgendes:
Code:
int fd = open( "/dev/lp0", O_RDWR );
lseek( fd, 1, SEEK_SET );
unsigned char wert = 255;
write( fd, &wert, sizeof( wert ) );
close( fd );
Wenn ich nen zufälligen String in /dev/lp0 schreibe, z.B. durch:
Code:
cat datei > /dev/lp0
Woran kann das liegen? Hab ich das Prinzip so einer Gerätedatei falsch verstanden??
Vielen Dank für eure Hilfe!
Mfg Dirk