use strict;
use warnings;
use Device::FTDI::I2C;
my $i2c = Device::FTDI::I2C->new(
clock_rate => 100E3,
);
sleep 0.1;
my $addr = 0x60;
# Read the ID register
my $id = unpack "C",
$i2c->write_then_read( $addr, pack( "C", 0x0C ), 1 )->get;
# Start a oneshot operation
$i2c->write( $addr, pack( "C C", 0x26, 0x02 ) )->get;
sleep 0.2;
# Read the current temperature
my $temp = unpack "n",
$i2c->write_then_read( $addr, pack( "C", 0x04 ), 2 )->get;
printf "OUT_T register is %04x\n", $temp;
printf " temperature is %.2f\n", $temp / 256;