[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

/dev/lp0



кто работал с параллельным портом в смысле программирования?
тут понадобилось временный девайс сделать нули/единички с компа выдать.
чтобы схему не собирать подумалось с парпорта выдать...

ну и сунулся я в хаутушки, а что-то невнятно

пишут что 
base_address+0 - егойная шина данных
base_address+1 - входные линии управления
base_address+2 - выходные линии управления

скидал скриптик на перле, повесил пару светодиодов.

один на данные, второй на один из выходов управления

скрипт что-то вроде

#!/usr/bin/perl

my $base=0;
my $out=0;
open my $port, ">", "/dev/lp0";
{
	seek 0, $base+0, 0;
	print $port pack('C', $out);
	seek 0, $base+2, 0;
	print $port pack('C', $out);
	$out^=0xFF;
	sleep 1;
	redo;
}

и вот что-то не работает как ожидается (мигать раз в сек должен)

для меня темный момент с базовым адресом остался я так и не понял 0x378
тудыть надо или 0, что-то невнятно как-то написано, но пробовал и так и
этак - фиг.

пробовал так же заменять print на syswrite, seek на sysseek итп
думал мож с буфферизацией что - хез.

светодиодики подключенные все время светятся, при прохождении через
функцию open "промаргивают" а дальше опять действия скрипта на них не
влияют.

не подскажет кто в чем дело или же ткнет во внятную хаутушку по
программингу парпорта в линукс?



Reply to: