Device-Firmata
view release on metacpan or search on metacpan
examples/example-i2c.pl view on Meta::CPAN
0); #control
$device->i2c_read($DS1307,0,7);
while(1) {
$device->poll();
select(undef,undef,undef,0.1);
}
sub onI2CMessage {
my $i2cdata = shift;
my $address = $i2cdata->{address};
my $register = $i2cdata->{register};
my $data = $i2cdata->{data};
my @days = ('Sun','Mon','Tue','Wed','Thi','Fri','Sat');
my $second = shift @$data;
my $minute = shift @$data;
my $hour = shift @$data;
my $day = shift @$data;
my $date = shift @$data;
my $month = shift @$data;
my $year = shift @$data;
lib/Device/Firmata/Protocol.pm view on Meta::CPAN
# {2-0: slave address MSB in 10-bit mode, not used in 7-bit mode}
# * 4 data 0 (LSB)
# * 5 data 0 (MSB)
# * 6 data 1 (LSB)
# * 7 data 1 (MSB)
# * ...
# * n END_SYSEX (0xF7)
# */
sub packet_i2c_request {
my ( $self, $address, $command, @i2cdata ) = @_;
if (($address & 0x380) > 0) {
$command |= (0x20 | (($address >> 7) & 0x7));
}
if (scalar @i2cdata) {
my @data;
push_array_as_two_7bit(\@i2cdata,\@data);
return $self->packet_sysex_command( I2C_REQUEST,
$address & 0x7f,
$command,
@data,
);
} else {
return $self->packet_sysex_command( I2C_REQUEST,
$address & 0x7f,
$command,
);
( run in 0.474 second using v1.01-cache-2.11-cpan-454fe037f31 )