A pak ještě jedna věc: Zapisovat přímo na port 0×378 je velice nešikovný přístup. V dobách DOSu to bylo OK, ale na Linuxu je daleko lepší využít už nachystaných ioctl() a program bude fungovat i na paralelním portu připojeném v USB (takový ten převodník asi za 400Kč) nebo i na druhém a třetím portu. Prostě na všem co vidí jádro.
Doporučuju kouknout do adresáře Documentation ve zdrojácích jádra, je to tam hezky popsané a po vhození odpovídajících symbolů do googlu vypadnou i pěkné příklady.
Pak taky tuším, že na abclinuxu.cz před nějakou dobou vyšlo pár článků na podobné téma.
Tak já toto řeším použitím knihovny parapin… Je to hezké usnadnění práce s LPT :-) je to dost snadno použitelné (set_pin(LP_PIN[X]); clear_pin(LP_PIN[X]); pin_is_set(LP_PIN[X])) a možná by stálo za to v tomto seriálu parapin představit a i používat…
Jinak parádní seriál, díky
Jak uz jsem zminil v uvodu, budu to delat tim nejjednodussim zpusobem. Jednak protoze s tim mam zkusenosti (ani si nejsem jist, zda ty ioctl() existovaly v dobe, kdy jsem s tim zacinal; na 2. a 3. portu by to samozrejme chodilo, staci prepsat adresu – jsou v uvodu) a druhak proto, ze casem prejdu na zapojeni s atmegou8 a seriovym portem, ktera uz budou cista a universalni.
Pokud napisete nejakou cistou implementaci a vystavite ji tu, tak budu jedine rad.
Videl jsem tolik ruznych portu, ze bych to netvrdil tak kategoricky … navic se mi parkrat kratkodoby zkrat povedl.
Videl jsem i port, ktery mel tak male vystupni napeti, ze na nej nesly pripojit TTL chipy :-( …
Ale nikomu bych zkrat nedoporucoval, protoze zrovna jeho port to nemusi snest …