Hello,
I am trying to convert from 12h mode to 25H mode and vice versa with a Ds1337 chip. Not getting great results for now.
What I understand Bit 5 and 6 or the hours plays a role in converting. Her is a clip from the datasheet:
The DS1337 can be run in either 12-hour or 24-hour mode. Bit 6 of the hours register is defined as the 12- or 24-
hour mode-select bit. When high, the 12-hour mode is selected. In the 12-hour mode, bit 5 is the AM/PM bit with
logic high being PM. In the 24-hour mode, bit 5 is the second 10-hour bit (20–23 hours).
I am configuring it so that when two buttons are pressed down for over 1.5 seconds, the conversion between 12h mode to 24h mode is done. From what I understan, I also need to convert the time myself example: from 20H to 8H. The code for me should work but keeps giving me random values, any ideas ?
thanks
Code:If (PortC.5 = 1) & (PortC.6 = 1) then Pause 1500 If (PortC.5 = 1) & (PortC.6 = 1) then 'IF hourly mode = AM I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour] Pause 10 if RTCHour.6 = 1 then 'turn into 24h mode therefore 1 to 11 converts to 13 to 23 point =2 gosub bcd_to_bin RTCHour = TempVal + 12 RTCHour.6 = 0 endif if RTCHour.6 = 0 then 'turn into 12h mode therefore 13 to 23 converts to 1 to 11 point =3 gosub bcd_to_bin RTCHour = TempVal - 12 RTCHour.6 = 1 endif I2cwrite SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour] Pause 100 endif




Bookmarks