Symbol sda = PORTC.4 'SDA pin
Symbol scl = PORTC.3 'SCL pin
Const rtc = 0xd0
Dim time(7) As Byte
Dim index As Byte
main:
'Your code
goto main
end
'Retrieve time values
'----------------------
getdatetime:
For index = 0 To 6
I2CRead sda, scl, rtc, index, time(index)
time(index) = rtc_sort(time(index))
WaitMs 1
Next index
Return
'Set time values
'-----------------
setdatetime:
For index = 0 To 6
time(index) = rtc_unsort(time(index))
I2CWrite sda, scl, rtc, index, time(index)
WaitMs 10
Next index
Return
'Unsort time for RTC display array
'-----------------------------------
Function rtc_unsort(dta As Byte) As Byte
d_hi = dta / 10
d_lo = dta Mod 10
rtc_unsort = d_hi * 16 + d_lo
End Function
'Sort time for RTC ram banks
'-----------------------------
Function rtc_sort(dta As Byte) As Byte
d_hi = ShiftRight(dta, 4)
d_hi = d_hi And 7
d_lo = dta Mod 16
rtc_sort = d_hi * 10 + d_lo
End Function