Hey dave, thanks for the help. I had written this program with two Subroutine that I found on this site somewhere.. I will test it tonight.
Code:
CountDown:
I2CWRITE SDApin,SCLpin,$D0,$00,[$00,$00,$00,$00,$00,$00,$00,$00] ' Write to DS1307 to start counter at ZERO
Pause 20
while RTCHour != 1
I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour,RTCWDay,RTCDay,RTCMonth,RTCYear,RTCCtrl]
Pause 20
'Will get the time from timer chip and do a 60 min count down
'Also add interrupt if someone presses start to view the charge/discharge cycle
TempVal=RTCSec
GoSub BCD_TO_BIN
Secs=TempVal
TempVal=RTCmin
GoSub BCD_TO_BIN
Mins=TempVal
Rest_seconds = 59 - Secs
Rest_min = 59 - Mins
lcdout $FE,1, "Time: ", dec2 RTCHour, ":", dec2 RTCMin, ":", dec2 RTCSec
lcdout $FE,$C0, " Dif: ", dec2 RTCHour, ":", dec2 Rest_min ,":", dec2 Rest_seconds
Pause 150
Wend
return
BCD_TO_BIN: ' Convert the BCD values into BIN
Temp1 = $0F & TempVal ' Clear off the top four bits
Temp1 = Temp1 Dig 0
Temp2 = TempVal >> 4 ' Shift down four to read 2 BCD value
Temp2 = Temp2 Dig 0
TempVal = Temp2 * 10 + Temp1
Return
BIN_TO_BCD:
Temp1 = TempVal Dig 0 ' GET THE DEC DIGIT FOR THE FIRST NIBBLE
Temp2 = TempVal Dig 1 ' GET THE DEC DIGIT FOR THE FIRST NIBBLE
Temp2 = Temp2 << 4 ' MOVE NUMBER OVER TO 2ND NIBBLE
TempVal = Temp1 ^ Temp2 ' XOR THEM TOGTHER TO MAKE THE WHOLE BCD NUMBER
Return
Bookmarks