relé na paralelní port

Aleš Filip nostromo na khnet.info
Pondělí Říjen 22 19:31:28 CEST 2012


Dobrý den,

Můžete mi nekdo prosím poradit ještě s jednou věcí? Potřeboval bych na 
PP připojit ještě jazýčkový kontakt na detekci otevřeného okna. Jak 
načíst stav toho kontaktu? Asi z PO, BUSY, ACK, apod. Dík.

S pozdravem,

-- 
  Aleš Filip
  Kutná Hora
  http://xanadu.khnet.info


Dne 29.9.2012 22:52, Miroslav Mraz napsal(a):
> Marek Peca píše v So 29. 09. 2012 v 22:02 +0200:
>>> Jde,
>>> otevřít /dev/parport0 a přes ioctl() ovládáte jednotlivé bity.
>> Ano, to je ta novejsi a spravnejsi cesta. Pro pripad rychle potreby
>> uvadim svuj letity prog na ovladani rele, lec jedna se o primy pristup na
>> i/o:
> Nějak jsem si nevšiml, že to má jít jednoduše. No zase tak složité to
> není:
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <fcntl.h>
> #include <sys/ioctl.h>
> #include <string.h>
> #include <errno.h>
> #include <linux/ppdev.h>
> // argument jsou desitkova cisla
> int main (int argv, char* argc[]) {
>    unsigned char wbyte;
>    int i, data_dir = 0;
>    int fd = open("/dev/parport0", O_RDWR);
>    if (fd < 0) { // eperm: sudo chmod a+rw /dev/parport0
>      fprintf(stderr, "Chyba: %s\n", strerror(errno));
>      return -1;
>    }
>    ioctl (fd, PPCLAIM);
>    ioctl (fd, PPDATADIR, &data_dir);
>    for (i=0; i<argv; i++) {
>      wbyte = (unsigned char) atoi (argc[i]);
>      ioctl (fd, PPWDATA, &wbyte);
>      // sleep (1);
>    }
>    ioctl (fd, PPRELEASE);
>    close (fd);
>    return 0;
> }
>
> Chyby ioctl() nejsou ošetřeny, bylo by to dlouhé.
>
> Mrazík
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list