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 17:11 | Nová verze

    Byla vydána nová verze 9.20 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček RustDesk Server pro vzdálený přístup.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.4.0 video editoru OpenShot (Wikipedie). Představení novinek také na YouTube. Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána nová verze 1.6 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Podrobnosti na demo stránce.

    Ladislav Hagara | Komentářů: 2
    včera 01:33 | Komunita

    Vojtěch Polášek představil Vojtux, tj. linuxovou distribuci pro zrakově postižené uživatele. Vychází ze spinu Fedory 43 s desktopovým prostředím MATE. Konečným cílem je, aby žádný Vojtux nebyl potřeba a požadovaná vylepšení se dostala do upstreamu.

    Ladislav Hagara | Komentářů: 10
    včera 00:33 | Nová verze

    Byla vydána (Mastodon, 𝕏) druhá RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 0
    15.12. 15:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).

    Ladislav Hagara | Komentářů: 0
    15.12. 14:11 | IT novinky

    Izrael od února zakáže dětem používat v prostorách základních škol mobilní telefony. Podle agentury AFP to uvedlo izraelské ministerstvo školství, které zdůraznilo negativní dopady, které na žactvo používání telefonů má. Izrael se tímto krokem přidává k rostoucímu počtu zemí, které dětem ve vzdělávacích zařízeních přístup k telefonům omezují.

    Ladislav Hagara | Komentářů: 32
    15.12. 14:00 | IT novinky

    Internetová společnost Google ze skupiny Alphabet pravděpodobně dostane příští rok pokutu od Evropské komise za nedostatečné dodržování pravidel proti upřednostňování vlastních služeb a produktů ve výsledcích vyhledávání. V březnu EK obvinila Google, že ve výsledcích vyhledávání upřednostňuje na úkor konkurence vlastní služby, například Google Shopping, Google Hotels a Google Flights. Případ staví Google proti specializovaným

    … více »
    Ladislav Hagara | Komentářů: 8
    15.12. 12:22 | Pozvánky

    Byl oznámen program a spuštěna registrace na konferenci Prague PostgreSQL Developer Day 2026. Konference se koná 27. a 28. ledna a bude mít tři tracky s 18 přednáškami a jeden den workshopů.

    TomasVondra | Komentářů: 0
    15.12. 12:11 | Pozvánky

    Na webu československého síťařského setkání CSNOG 2026 je vyvěšený program, registrace a další informace k akci. CSNOG 2026 se uskuteční 21. a 22. ledna příštího roku a bude se i tentokrát konat ve Zlíně. Přednášky, kterých bude více než 30, budou opět rozdělené do tří bloků - správa sítí, legislativa a regulace a akademické projekty. Počet míst je omezený, proto kdo má zájem, měl by se registrovat co nejdříve.

    VSladek | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (20%)
     (17%)
     (23%)
     (15%)
     (24%)
     (15%)
     (18%)
    Celkem 471 hlasů
     Komentářů: 19, poslední 11.12. 20:04
    Rozcestník

    Dotaz: Jak číst paralelní port?

    14.10.2020 10:14 U!U!U!
    Jak číst paralelní port?
    Přečteno: 968×
    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.