id=0
sda=6
scl=7
-- initialize i2c, set pin6 as sda, set pin7 as scl
i2c.setup(id,sda,scl,i2c.SLOW)
-- user defined function: read from reg_addr content of dev_addr
function read_reg(dev_addr, reg_addr)
i2c.start(id)
i2c.address(id, dev_addr ,i2c.TRANSMITTER)
i2c.write(id, bit.band(reg_addr,0xFF))
i2c.stop(id)
i2c.start(id)
i2c.address(id, dev_addr,i2c.RECEIVER)
c=i2c.read(id,1)
i2c.stop(id)
return string.format("%02X",string.byte(c)) -- return bcd string as decimal no.
end
function write_reg(dev_addr,reg_addr, reg_val)
i2c.start(id)
i2c.address(id, dev_addr, i2c.TRANSMITTER)
i2c.write(id, bit.band(reg_addr,0xFF))
i2c.write(id, reg_val)
i2c.stop(id)
end
write_reg(0x68, 0,0) --set seconds
tmr.delay(100)
write_reg(0x68, 1,0x55) --set mins
tmr.delay(100)
write_reg(0x68, 2,0x12) --set hours
tmr.delay(100)
write_reg(0x68, 3,0x03) --set day
tmr.delay(100)
write_reg(0x68, 4,0x11) --set date
tmr.delay(100)
write_reg(0x68, 5,0x04) --set month
tmr.delay(100)
write_reg(0x68, 6,0x15) --set year
tmr.delay(100)
tmr.alarm(0,1000,1,function()
print("The time is")
print(read_reg(0x68,2).."-"..read_reg(0x68,1).."-"..read_reg(0x68,0))
print(read_reg(0x68,4).."-"..read_reg(0x68,5).."-".."20"..read_reg(0x68,6))
end)
Gerry