LINUX.ORG.RU

draiver dlia izvlecenija dannih iz LPT porta


0

0

Esli kto znaet kak iz LPT porta so vtoroj nogi citat dannie, napisite. Nuzna programma dlia draivera i prikladnaja programma. Citat zelatelno s pomosiu inb() funkcii. Dopustim dlia vihoda dannih na LPt 2 nogu v draivere nado pisat: ssize_t lab3_write(struct file *filp, const char *buf, size_t count, loff_t *f_pos) { ssize_t retval = 0; unsigned char out = 0x00; retval = copy_from_user(&out, buf, 1); if(retval < 0) return retval; outb(out, dev->base); wmb(); return count; }

a v prikladnoj proge:

int main() { int fd; if((fd = open("/dev/lab3", O_WRONLY)) < 0) { printf("error \n"); return -1; } int j = 0, i = 0; unsigned char out = 0x00; for(i = 1; i < 500; i++) { if (j == 0) { j = 1; out = 0x01; } else { j = 0; out = 0x00; } if((write(fd, &out, sizeof(unsigned char))) < 0) { printf("Error1 \n"); return -1; } usleep (20000); } close(fd); return (0); }

Tak vots vihodom vsio poniatno, a kak s cteniem? Kuda funkcija inb() zapisivaet rezultat, kak iznego vibrat dannie imenno 2 nogi LPT porta, i kak polucit dannie v prikladnoj programme? Esli kto znaet, ocen prosu otvetit, ocen nado! Spasibo!

Re: draiver dlia izvlecenija dannih iz LPT porta

Какой режим у порта? EPP ECP? ByteMode? что к порту прикручено? Есть документ The Linux 2.4 Parallel Port Subsystem, там можно почитеть. А можно на это забить, если девайс пристёгнут свой, простой, не надо делить порт между несколькими устройствами, то мона и прям из программулины данные получать.

Whaler
()
Ответ на: Re: Re: draiver dlia izvlecenija dannih iz LPT porta от maximkart

Re: Re: Re: draiver dlia izvlecenija dannih iz LPT porta

Для чтения из ЕРР порта надо читать байт по смещению 4. Только надо помнить что данные прочитаются только при корректном стробировании.

Вообще то это можно прочитать в любой книжке по переферийным устройствам, в том числе и в I-nete.

Whaler
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.