#!/usr/bin/perl # use strict; use RPi::I2C; $SIG{TERM} = \&StopSig; $SIG{INT} = \&StopSig; $SIG{HUP} = \&StopSig; my $gDevAddr = 0x10; my $gDev = RPi::I2C->new($gDevAddr); my $cnt = 0; while (1) { for(my $idx = 0; $idx < 4; $idx++) { my $val = (($cnt >> $idx) % 2); $gDev->write_byte($val, $idx + 1); print "\$idx=$idx, \$val=$val\n"; } print "\n"; sleep(1); $cnt++; } sub StopSig { my ($SigNum) = @_; for (my $idx = 0; $idx < 4; $idx++) { $gDev->write_byte(0, $idx + 1); } print("Stop signal $SigNum received\n"); exit; } # StopSig()