#!/usr/bin/perl -w use POSIX; $port = '2'; $fd = POSIX::open('/dev/ttyS'. $port, O_RDWR | O_NOCTTY) or die "$! in open"; $termios = POSIX::Termios->new; $termios->getattr($fd) or die "$! in getattr"; print $termios->getispeed, " ", $termios->getospeed, " ", POSIX::B9600, " ", POSIX::B38400, "\n"; #$lcdfd = POSIX::open('/dev/ttyS1', O_RDWR | O_NOCTTY) or die "$! in open"; #sub lcdprint { # foreach $s (@_) { # print "writing \"$s\" to LCD\n"; # POSIX::write($lcdfd, $s, length $s) or die "$! in write"; # }; #} for (;;) { for ($i = 0; $i < 256; $i++) { $buff = chr(255) . chr(0) . chr($i); POSIX::write($fd, $buff, 3) or die "$! in write"; # lcdprint ("speed=$i\r\n") if not ($i % 10); select undef, undef, undef, 0.2 }; for ($i = 255; $i >= 0; $i--) { $buff = chr(255) . chr(0) . chr($i); POSIX::write($fd, $buff, 3) or die "$! in write"; # lcdprint("speed=$i\r\n") if not ($i % 10); select undef, undef, undef, 0.2 }; }; POSIX::close($fd);