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 15:11 | Komunita

Ubuntu 21.04 bude Hirsute Hippo.

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

Byla vydána verze 12.2 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 2
včera 07:00 | Nová verze

Byla vydána nová stabilní verze 20.09 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Nightingale. Přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

Ladislav Hagara | Komentářů: 0
27.10. 15:55 | IT novinky

Na Indiegogo byla spuštěna kampaň na podporu mobilního telefonu s klávesnicí Pro1 X od společnosti F(x)tec. Na výběr je předinstalovaný LineageOS, Ubuntu Touch nebo Android.

Ladislav Hagara | Komentářů: 12
27.10. 15:11 | Nová verze

Bylo oznámeno (en) vydání Fedory 33. Ve finální verzi vycházejí tři oficiální edice: Workstation pro desktopové nasazení, Server pro serverové nasazení a IoT pro internet věcí. Vedle nich jsou k dispozici také vznikající edice Silverblue a alternativní desktopy, např. KDE Plasma, Xfce nebo LxQt, a k tomu laby – upravené vydání Fedory například pro designery, robotiku, vědecké použití atd. Stahovat lze z Get Fedora. Přehled novinek v

… více »
Ladislav Hagara | Komentářů: 17
27.10. 14:22 | Zajímavý článek

V Edici CZ.NIC vyšla kniha Data, čipy, procesory od Martina Malého. Koupit ji lze tištěnou nebo zdarma stáhnout ve formátech PDF (10 MB), EPUB (4,3 MB) a MOBI (11 MB). Jedná se o volné pokračování knih Hradla, volty, jednočipy a Porty, bajty, osmibity.

Ladislav Hagara | Komentářů: 0
27.10. 13:33 | IT novinky

Společnost AMD kupuje firmu Xilinx za 35 miliard dolarů. V září bylo oznámeno, že společnost Nvidia kupuje firmu Arm za 40 miliard dolarů.

Ladislav Hagara | Komentářů: 4
27.10. 07:00 | Komunita

Neziskové technologické konsorcium Linux Foundation rozšířilo seznam svých oficiálních projektů. Nejnovějším projektem je SDDI (Software Developer Diversity and Inclusion), jehož cílem je rozšiřování diverzity a inkluze v softwarovém inženýrství.

Ladislav Hagara | Komentářů: 60
27.10. 06:00 | Komunita

Greg Kroah-Hartman oznámil, že Linux 5.10 bude jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Aktuální jádra s prodlouženou podporou jsou 4.4, 4.9, 4.14, 4.19 a 5.4.

Ladislav Hagara | Komentářů: 0
26.10. 18:22 | Komunita

Uživatelé linuxové distribuce Debian mají možnost hlasovat o výchozím grafickém motivu Debianu 11 aneb Bullseye.

Ladislav Hagara | Komentářů: 9
Které aspekty uživatelského rozhraní textového editoru považujete za důležité?
 (70%)
 (37%)
 (33%)
 (17%)
 (24%)
 (16%)
Celkem 227 hlasů
 Komentářů: 21, poslední 23.10. 17:33
Rozcestník

Dotaz: Jak číst paralelní port?

14.10. 10:14 U!U!U!
Jak číst paralelní port?
Přečteno: 470×
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. 10:42 dustin | skóre: 62 | 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. 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. 11:14 dustin | skóre: 62 | 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. 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. 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. 14:59 rastos | skóre: 62 | 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. 09:24 pet I. | skóre: 9
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. 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. 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. 09:13 pet I. | skóre: 9
Rozbalit Rozbalit vše Re: Jak číst paralelní port?
Stačí tam dát >> ioperm(portD, 3, 1) <<
21.10. 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. 09:18 jiwopene | skóre: 24
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.
Řešení 1× (Gréta)
21.10. 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)));
}

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.