abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 16:22 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Zajímavý článek

    David Malcolm se na blogu vývojářů Red Hatu rozepsal o vybraných novinkách v GCC 16, jež by mělo vyjít v nejbližších dnech. Vypíchnuta jsou vylepšení čitelnosti chybových zpráv v C++, aktualizovaný SARIF (Static Analysis Results Interchange Format) výstup a nová volba experimental-html v HTML výstupu.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Nová verze

    Byla vydána verze R14.1.6 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    včera 12:55 | Komunita

    Jon Seager z Canonicalu včera na Ubuntu Community Hubu popsal budoucnost AI v Ubuntu. Dnes upřesnil: AI nástroje budou k dispozici jako Snap balíčky, vždy je může uživatel odinstalovat. Ve výchozím nastavení budou všechny AI nástroje používat lokální AI modely.

    Ladislav Hagara | Komentářů: 0
    27.4. 23:11 | IT novinky

    Nový ovladač Steam Controller jde do prodeje 4. května. Cena je 99 eur.

    Ladislav Hagara | Komentářů: 2
    27.4. 14:22 | Komunita

    Greg Kroah-Hartman začal používat AI asistenta pojmenovaného gkh_clanker_t1000. V commitech se objevuje "Assisted-by: gkh_clanker_t1000". Na social.kernel.org publikoval jeho fotografii. Jedná se o Framework Desktop s AMD Ryzen AI Max a lokální LLM.

    Ladislav Hagara | Komentářů: 7
    27.4. 04:44 | Komunita

    Ubuntu 26.10 bude Stonking Stingray (úžasný rejnok).

    Ladislav Hagara | Komentářů: 2
    26.4. 22:22 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.3.0. S experimentální podporou FLTK 1.4. S příkazem dilloc pro ovládání prohlížeče z příkazové řádky. Vývoj prohlížeče se přesunul z GitHubu na vlastní doménu dillo-browser.org (Git).

    Ladislav Hagara | Komentářů: 1
    26.4. 21:55 | Komunita

    Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Vývojáři v přehledu vypíchli vylepšenou instalaci, podporu senzoru okolního světla, úsporu energie, opravy Bluetooth nebo zlepšení audia. Vývoj lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 1
    25.4. 04:00 | Nová verze

    raylib (Wikipedie), tj. multiplatformní open-source knihovna pro vývoj grafických aplikací a her, byla vydána ve verzi 6.0.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1447 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Jak číst paralelní port?

    14.10.2020 10:14 U!U!U!
    Jak číst paralelní port?
    Přečteno: 977×
    Mám starší A/D převodník z NDR C571C (AD571) a napadlo mě připojit ho k nevyužívanému paralelnímu portu a měřit s ním. Jenže z /dev/lp0 přímo číst nejde, v repozitáři nevidím nic, co by umělo s paralelním portem pracovat a v céčku ošklivě plavu. Ještě je tady jeden problém - převodník má 10 bitů na výstupu, paralelní port má sice 8 bitů, ale určitě by šlo použít i třeba /Strobe a /LineFeed. Mé někdo nápad, co s tím? Chci z toho příkazem jednorázově dostat hodnotu, je mi jedno, jestli desítkovou (0-1023), nebo šestnáctkovou. Díky.

    Řešení dotazu:


    Odpovědi

    14.10.2020 10:42 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Nebylo by jednodušší vzít arduino s USB převodníkem za 35Kč, nahrát na něj firmatu přímo z Arduino IDE a číst interní 10bitový AD převodník např. z pythonu metodou analog_read?
    14.10.2020 10:55 U!U!U!
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    To bohužel nebylo, Arduino mne vůbec nic neříká a neláká mne. Přece jen jsem ze stavebnic vyrostl. A chci nějak využít LPT. Jen mě mrzí, že na hrátky se starými porty nejsou v repu žádné nástroje.
    14.10.2020 11:14 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Firmware pro arduino (firmata) je hotový, jen se triviálně přes USB nahraje, ani není potřeba nic stahovat kromě Arduino IDE. Výsledkem je destička s USB konektorem, která umí spoustu HW rozhraní a ovládá se jednoduchými příkazy z PC. Knihovny pro firmatu jsou k dispozici pro většinu jazyků. Z mého pohledu je to menší "stavebnice" než holý čip, který má víc bitů než paralelní port.

    Ale držím palce. Když jsem si hrál s logickým analyzátorem přes paralelní port, musel jsem na ovládání paralelního portu také přes Cčko (používal jsem myslím nějak ohackovaný http://www.computernerdkev.heliohost.org/tfla-16/index.htm, už je to dávno)
    14.10.2020 11:17 X
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Nechces vyuzit pomoci arduino a neprogramujes v C/C++. No tak to na to muzes rovnou zapomenout. Pochybuji, ze existuje kouzelny program co bude komunikovat zrovna s tvym 10-bitovym prevodnikem, ktery k nemu "jen tak" nadratujes.
    14.10.2020 12:15 U!U!U!
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Kdysi jsem viděl kratičký kód (v C), tam to bylo pro zápis, používaly se dva porty (0x378 a 0x379), ale nemůžu ho najít. Jistě by šel po úpravě použít i pro čtení. A ještě jednou - chci využít to, co mám, ne to, co mi přijde za 2 měsíce z Číny. A s Arduinem (nebo jinou stavebnicí) se nechci učit, prostě mi je mnohem bližší vzít si hrst odporů, tranzistorů, IO, do ruky pájku s olovnatým cínem, než jen mezi sebou propojovat moduly, abych se ve výsledku kochal nad blikající LEDkou, když se dá blikátko udělat s jedním tranzistorem, jedním R a jedním C za 5 minut.
    14.10.2020 14:59 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Je mi trocha smutno, že každý navrhuje nejak to obísť cez Arduino či USB.

    Tipujem, že čítanie v princípe znamená otvoriť /dev/lp0 na čítanie a čítať. Trebárs aj cez cat. Problém je v tom, že to, čo je k tomu portu pripojené, musí nejak dať najavo, že "teraz!". A podľa toho, čo som za poslednú minútu našiel na googli/wiki, tak sa to urobí tak, že to pripojené zariadenie musí zacvičiť s napätím na pine #1 (strobe). A možno to ešte treba potvrdiť nastavením stavu na pine #10 (acknowledge).

    Pri opačnom smere stačilo urobiť cat - > /dev/lp0 a z tlačiarne už liezol papier ;-)
    15.10.2020 09:24 pet I. | skóre: 13
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Tipujem, že čítanie v princípe znamená otvoriť /dev/lp0 na čítanie a čítať.

    Tipuješ špatně. Znamená to:

    # nastavit v BIOSu port do "hloupého" režimu

    # a pak

    ## napsat program přistupující na fyzické io adresy printerportu a správně obsluhující handshake převodníku a ten spouštět pod rootem,

    ## nebo napsat driver do kernelu který udělá /dev/něco co bude správně obsluhovat handshake převodníku a pak můžeš použít ten cat /dev/něco

    Ale když ty programovat neumíš .... :-(

    21.10.2020 02:09 U!U!U!
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Jak to sdělit, abych stavebničáře neurazil? Skoro to mám!
    Trochu jsem šprtal a sesmolil jsem následující:
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/io.h>
    
    #define portC 0x37a
    int main()
    
    {
       if (ioperm(portC, 1, 1))
        fprintf(stderr, "\e[31;43m Nemáš oprávnění \e[0m\n"), exit(1);
    	outb(0, portC);
    	int dataC = inb(portC);
    	printf("%i\n", ((256*(dataC-192))));
    	return(dataC);
    }

    Tady pracuju s portem 0x37a (řídicí; data lze číst na portu 0x37c v režimu EPP) a - nejdřív se vynuluje (řádek 11), pak se přečte, převede na desítkovou soustavu, odečte 192 (horní 4 bity nelze ovládat a nejsou k nim dráty) a, protože to budou horní 4 bity, vynásobí se to 256. Přestože jsou 3 ze 4 vstupů za invertorem, funguje to.

    Jenže jsem se pokusil do toho nabastlit i čtení z datového portu, nevím, kde dělám chybu, ale hází mi to SIGSEGV.
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/io.h>
    
    #define portD 0x37c
    #define portC 0x37a
    int main()
    
    {
       if (ioperm(portD, 1, 1))
        fprintf(stderr, "\e[31;43m Nemáš oprávnění \e[0m\n"), exit(1);
    	outb(0, portD);
    	outb(0, portC);
    	int dataD = inb(portD);
    	int dataC = inb(portC);
    	printf("%i\n", ((dataD+256*(dataC-192))));
    	return(dataC);
    	return(dataD);
    }
    21.10.2020 08:08 MM
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    není tam problém, že ioperm máš jen pro portD ale už ne pro portC? Asi to budeš muset udělat postupně s 2ma ifama
    21.10.2020 09:13 pet I. | skóre: 13
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Stačí tam dát >> ioperm(portD, 3, 1) <<
    21.10.2020 10:44 U!U!U!
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Ne. Prakticky to přestane fungovat od druhého outb.
    21.10.2020 09:18 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Ty dva returny by neměly fungovat.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    21.10.2020 11:59 U!U!U!
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Tohle funguje!
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/io.h>
    
    #define portD 0x37c
    #define portC 0x37a
    
    int main()
    {
    	if (ioperm(portC, 1, 1)) fprintf(stderr, "\e[31;43m Nemáš oprávnění \e[0m\n"), exit(1);
    	if (ioperm(portD, 1, 1)) fprintf(stderr, "\e[31;43m Nemáš oprávnění \e[0m\n"), exit(1);
    	outb(0, portD);
    	outb(0, portC);
    	int dataD = inb(portD);
    	int dataC = inb(portC);
    	printf("%i\n", (dataD+256*(dataC-192)));
    }
    11.11.2020 20:37 frr | skóre: 34
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Mein Kompliment, že se hrdě pouštíte do práce se starobylým LPT portem :-)

    Pozor, LPT port ve standardním režimu (aka "SPP") teoreticky není obousměrný. Některý LPT hardware se dá znásilnit, protože budiče nejsou příliš silné, a čtení dotyčného registru skutečně čte stav vnějších pinů... Pokud ale dokážete LPT přepnout do režimu EPP (nebo snad i ECP), tak je to jiná - při čtení by měl být výstupní budič ve třetím stavu (vysoká impedance). Pokud se nepletu, příslušnou konfiguraci bych očekával v "out of band" registrech SuperIO švába, kterým je LPT port v moderním železe implementován - a na tyto registry je v lepším případě navázáno menu v BIOS SETUPu, kde lze režim portu zvolit. Pokud zjistíte typ SuperIO švába (je-li přítomen), asi bych dokázal dohledat víc.
    [:wq]
    3.11.2020 14:49 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Jak číst paralelní port?
    Používání inb a outb je čuňárna, ten program musí běžet pod rootem a nikdy jinak. Vhodnější je použít ovladač ppdev (modprobe ppdev), příklad kódu je tady (kapitola User-Mode Access):

    https://www.htlinux.com/parallel_port_control_in_linux/

    Na to pak stačí, abyste měl oprávnění k příslušnému souboru v /dev/ - u mě stačilo přidat si uživatele, pod kterým pracuju, do skupiny lp: gpasswd -a uzivatel lp

    (Na hračky typu Arduino se vykašlete.)
    Quando omni flunkus moritati

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.