pcf8563t - pcf8563t时钟模块#
适配状态未知
备注
本页文档由这个文件自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢!
示例
-- 数据手册 https://www.nxp.com.cn/docs/zh/data-sheet/PCF8563.pdf
local pcf8563t = require "pcf8563t"
local i2cid = 1
i2c.setup(i2cid, i2c.FAST)
pcf8563t.setup(i2cid) -- 选一个i2c, 也可以是软件i2c对象
-- 设置时间
local time = {year=2023,mon=11,day=2,wday=5,hour=13,min=14,sec=15}
pcf8563t.write(time)
-- 读取时间
local time = pcf8563t.read()
log.info("time",time.year,time.mon,time.day, time.hour,time.min,time.sec, "week=".. time.wday)
-- 设置闹钟, 并自动清除中断标志,开启alarm功能
alarm = {day=2,hour=13,min=14,sec=15}
pcf8563t.alarm(alarm)
local alarm_int = 1 -- 选一个GPIO,接时钟模块的INT脚
gpio.setup(1, function()
log.info("alarm!!!")
pcf8563t.control(nil, nil, 0, nil)
end, gpio.PULLUP)
-- 主动清除中断标志
pcf8563t.control(nil, nil, 0, nil)
-- 关闭alarm
pcf8563t.control(0, nil, 0, nil)
pcf8563t.setup(id, by)#
初始化
参数
传入值类型 |
解释 |
---|---|
int |
i2c设备的id, 或者软件i2c的对象,必须填 |
int |
年份基准,默认是2000, 可以不填 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true, 否则返回false |
例子
无
pcf8563t.read()#
读出时间
参数
无
返回值
返回值类型 |
解释 |
---|---|
table |
时间信息,如果读取失败会返回空的表 |
例子
local time = pcf8563t.read()
if time and time.year then
log.info("time", json.encode(time))
end
-- time 是个table, 有以下字段, 与os.date是兼容的
-- time.year 年份
-- time.mon 月份
-- time.day 月内的天数
-- time.hour 小时, 24进制
-- time.min 分钟
-- time.sec 秒
-- time.wday 周N, 周日为1, 周六为7
pcf8563t.write(time)#
设置时间
参数
传入值类型 |
解释 |
---|---|
table |
时间信息,与pcf8563t.read的字段规则是一样的 |
返回值
返回值类型 |
解释 |
---|---|
nil |
无返回值 |
例子
local time = {year=2023,mon=11,day=2,wday=5,hour=13,min=14,sec=15}
pcf8563t.write(time)
pcf8563t.alarm(time)#
设置闹钟
参数
传入值类型 |
解释 |
---|---|
table |
时间信息 |
返回值
返回值类型 |
解释 |
---|---|
nil |
无返回值 |
例子
-- 设置闹钟, 并自动清除中断标志,开启alarm功能
-- 注意只能设置天(wday)/小时(hour)/分钟(min)/周天(wday), 无法设置年月
alarm = {day=2,hour=13,min=14}
pcf8563t.alarm(alarm)
local alarm_int = 1 -- 选一个GPIO,接时钟模块的INT脚
gpio.setup(1, function()
log.info("alarm!!!")
pcf8563t.control(nil, nil, 0, nil)
end, gpio.PULLUP)
-- 注意规则!!! 传入的值,需要全部匹配才会触发
-- 例如, 每当min=1时触发, 不判断hour/day/wday
alarm = {min=1}
-- 例如, 每当min=1且hour=0时触发, 不判断day/wday
alarm = {min=1, hour=0}
-- 全部day/hour/min都满足才触发
alarm = {day=2,hour=13,min=14}
-- 全部day/hour/min/wday都满足才触发
alarm = {day=2,hour=13,min=14,wday=2}
pcf8563t.control(AIE, TIE, AF, TF)#
设置闹钟
参数
传入值类型 |
解释 |
---|---|
int |
闹钟开关, 0 关闭, 1 开始, nil保持原样 |
int |
定时器开关, 0 关闭, 1 开始, nil保持原样 |
int |
清除闹钟中断, 0 清除, nil保持原样 |
int |
清除定时器中断, 0 清除, nil保持原样 |
返回值
返回值类型 |
解释 |
---|---|
nil |
无返回值 |
例子
-- 主动清除中断标志
pcf8563t.control(nil, nil, 0, nil)
-- 关闭alarm
pcf8563t.control(0, nil, 0, nil)