NAME Device::Chip::PCF8563 - chip driver for a PCF8563 SYNOPSIS use Device::Chip::PCF8563; use Future::AsyncAwait; use POSIX qw( mktime strftime ); my $chip = Device::Chip::PCF8563->new; await $chip->mount( Device::Chip::Adapter::...->new ); printf "The current time on this chip is ", await strftime( "%Y-%m-%d %H:%M:%S", localtime mktime $chip->read_time ); DESCRIPTION This Device::Chip subclass provides specific communication to a NXP PCF8563 chip attached to a computer via an I²C adapter. METHODS The following methods documented in an await expression return Future instances. read_time @tm = await $chip->read_time; Returns a 7-element struct tm-compatible list of values by reading the timekeeping registers, suitable for passing to POSIX::mktime, etc... Note that the returned list does not contain the yday or is_dst fields. Because the PCF8563 only stores a 2-digit year number plus a single century bit, the year is presumed to be in the range 2000-2199. This method presumes POSIX-compatible semantics for the wday field stored on the chip; i.e. that 0 is Sunday. This method performs an atomic reading of all the timekeeping registers as a single I²C transaction, so is preferrable to invoking multiple calls to individual read methods. write_time await $chip->write_time( @tm ); Writes the timekeeping registers from a 7-element struct tm-compatible list of values. This method ignores the yday and is_dst fields, if present. Because the PCF8563 only stores a 2-digit year number and a century bit, the year must be in the range 2000-2199 (i.e. numerical values of 100 to 299). This method performs an atomic writing of all the timekeeping registers as a single I²C transaction, so is preferrable to invoking multiple calls to individual write methods. AUTHOR Paul Evans