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 <leonerd@leonerd.org.uk>