Potrzebuje prostego programu napisanego w C do obsługi portu LPT w systemie linux,
pogrzebałem trochę w internecie poczytałem poradniki o C i tak oto powstał konsolowy program do obsługi tego portu :
program po skompilowaniu gcc działa bez zarzutu , jednym problemem jest to że nie mogę nigdzie wylaleść sposobu do odczytu z pinów od 11 do 15 (z pominięcien 14) są to linie tylko do odczytu stan na nich można zmienić zwierają je do masy, niestety żaden znaleziony poradnik wynaleziony przeze mnie , nie traktuje o tym jak odczytać stany tych właśnie portów .
Jeśli ktoś wie jak rozwiązać ten problem to będę wdzięczny za pomoc.
PS.
Pragnę zaznaczyć że NIE programuję w C, dlatego prosił bym o w mire łopatologiczną odpowiedź.
Z góry dziękuje za okazaną pomoc.
pogrzebałem trochę w internecie poczytałem poradniki o C i tak oto powstał konsolowy program do obsługi tego portu :
2 #include <stdio.h>
3 #include <string.h>
4 #include <sys/io.h>
5 #include <sys/perm.h>
6
7 #define BASEPORT 0x378
8
9 int main(int liczba, char *parametr[])
10 {
11 //ioperm otwiera port
12 ioperm(BASEPORT,1,1);
13 // int i;
14 // for (i = 0; i < liczba; i++)
15 // printf("Argument nr %d: %s\n", i, parametr[i]);
16 int wynik = 2;
17 // PISZ
18 wynik = strcmp(parametr[1],"-pisz");
19 if (wynik == 0){
20 wynik = atoi(parametr[2]); //atoi() -stringa na intrger
21 printf("pisz gotowe \n");
22 printf("wynik mamy %i \n",wynik);
23 outb(wynik,BASEPORT);
24 }
25 //CZYTAJ
26 wynik = strcmp(parametr[1],"-czytaj");
27 if (wynik == 0) {
28
29 wynik = inb(BASEPORT);
30 printf("stanportu %i \n",wynik);
31 }
32 //PIN
33 wynik = strcmp(parametr[1],"-pin");
34 if (wynik ==0){
35
36 printf("Wywołano z -pin \n");
37 }
38
39 wynik = strcmp(parametr[1],"-h");
40 if (wynik == 0) {
41 printf("lptset - ustawia i odczytuje wartości na porcie LPT \n -pisz xxx pozwala włączyć poszczegóe piny w p orcie LPT\n paramet powinien być podany w formie dziesiętnej.\n\n -czytaj pozwala odczytać stany pinów wynik podawawny w formie dziesiętnej\n\n -pin podaje stan portów tylko do odczytu\n");
42 }
43 return 0;
44 }program po skompilowaniu gcc działa bez zarzutu , jednym problemem jest to że nie mogę nigdzie wylaleść sposobu do odczytu z pinów od 11 do 15 (z pominięcien 14) są to linie tylko do odczytu stan na nich można zmienić zwierają je do masy, niestety żaden znaleziony poradnik wynaleziony przeze mnie , nie traktuje o tym jak odczytać stany tych właśnie portów .
Jeśli ktoś wie jak rozwiązać ten problem to będę wdzięczny za pomoc.
PS.
Pragnę zaznaczyć że NIE programuję w C, dlatego prosił bym o w mire łopatologiczną odpowiedź.
Z góry dziękuje za okazaną pomoc.