Hi Rocky,

I think your code is missing the clock register constants. I use the DS1337 RTC from Maxim. The code for this chip was posted here either in 2004 or 2005 by Tonigalea. This chip also has two alarms. The key to an accurate clock is as was mentioned before. But you must also use the correct crystal. The DS1337, for example, must have a crystal with a 12.5pf capacitance load. When you look in a parts catalog, DigiKey for example, look for the capacitance load for 32,768 crystals. They are around $.50 or less.

We also just covered RTC's with jcleaver using a DS1307. It looked like he also didn't list the RTC register constants. I sent him a copy of a program for that RTC and he got that going.

I would give a serious look at Paul Borgmeier's Easy Accurate Clock programs as they are very easy to work with and setting up user interface for alarms should be very easy also.

You asked a questions about the timing that no one seemed to answer. The PIC generates an internal time base which is derived from the Oscillator of the PIC divided by 4 so if you are using a 4mHz crystal then you PIC clock runs at 1mHz. Then there are programmable timers in the PIC that can be set up to count pulses then interrupt the PIC program to advance the clock program and/or do tasks at a specified time.

Hope this helps.

BobK