parallel
-
wie schalte ich die einzelnen bits(pins)von der parallelen schnitstellen an /aus unte inux
ivh hab suse 9.3 pro
?
-
-
Ich hoffe du kannst mit dem Link was anfangen. Wenn nicht,kann ich die ein Beispiel posten.
-
net so viel aber nen bsp source wär echt nett..
thx
-
Ok. Dann hier ist Beispiel wie man einige Pins ein und ausschaltet:
/*Diser Code lässt LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öffnen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte nicht öffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<11) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; }
Und hier ein Beispiel fürs Lesen vom Parallerport:
/*Diser Code liest von Pins 2...9 (Datenregister) und Zeigt das Ergibnies an. */ /*gcc beispiel2.c -o beispiel2 */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öffnen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte nicht öffnen\n"); return 1; } /*Pins 2..9 als Eingang konfigurieren*/ frob.mask = 0x20; frob.val =0x20; ioctl (fd, PPFCONTROL, &frob); /*60 mal lesen*/ while ((loop++)<60) { ioctl(fd,PPRDATA ,&datareg);fflush(stdout); printf("%u:",datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; }
Solltest du noch Fragen haben dann poste sie.
-
hallo
ich möchte unter Kubuntu über die Prallele Schnittstelle (parport) Daten (string) senden und gleich wieder einlesen und mit den gesendeten vergleichen ... also ein Test ob die Schnittstelle funktioniert.
Dazu wird ein Loopbackstecker benutzt.hat man zwei möglichkeiten:
- Mit open, read, write und close arbeiten (ist komfortabel und man benötigt keine root rechte)
- über die Adresse (0x378) mit outb zugreifen (Lowlevel: besser geeignet um einzelne Pins anzusteurern; benötigt root rechte)Habe schon viel herumprobiert aber bekomme es einfach nicht nicht.
Möchte/sollte wenn möglich die erste möglichkeit nutzen.
Hat mir vielleicht jemand ein gutes Beispiel!?Schonmal Danke Christian