ADDHour: 'increment hours
pause 200
if PortC.5=1 then return
if PortC.6=1 then
I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour]
hourmode = RTCHour.6
rtcAMPM = RTCHour.5
' lcdout $FE,1, "RTCH1: ", bin RTCHour
' lcdout $FE,$C0, "BCDR: ", dec BCDResult
' pause 2000
if hourmode = 0 then ' this is 24H mode 0H to 23H
' hourmode = 1
BCDResult = RTCHour
gosub Bcd2Dec
BCDResult = BCDResult + 1
if BCDResult > 23 then BCDResult = 0
Pause 2
BCDResult_temp = BCDResult
gosub Dec2Bcd
RTCHour = BCDResult
if BCDResult_temp > 12 then RTCHour.5 = 1
I2cwrite SDApin,SCLpin,$D0,$02,[RTCHour]
elseif hourmode = 1 then ' this is 12H mode 0H to 12H
' hourmode = 0
rtcAMPM = RTCHour.5 ' Assign AM/PM
RTCHour = RTCHour & %00011111 ' Bits 4-0 = Hours 0-12
BCDResult = RTCHour
' lcdout $FE,1, "RTCH1: ", bin RTCHour
' lcdout $FE,$C0, "BCDR: ", dec BCDResult
' pause 2000
gosub Bcd2Dec
BCDResult = BCDResult + 1 ' in decimal
if BCDResult > 12 then BCDResult = 1
Pause 2
gosub Dec2Bcd
RTCHour = BCDResult
RTCHour.6 = hourmode
RTCHour.5 = rtcAMPM
' lcdout $FE,1, "RTCH2: ", bin RTCHour
' lcdout $FE,$C0, "BCDR: ", bin BCDResult
' pause 2000
I2cwrite SDApin,SCLpin,$D0,$02,[RTCHour]
endif
endif
return
Bookmarks