:?
Ok, here is how you calculate the differnce (I hope I get this right!!)....
4.096MHZ/4 = instructions per uS = 1.024 instructions per uS or 0.9765625 uS per instrucion!
4.000MHZ/4 = instructions per uS = 1.000 instructions per uS or 1uS per instruction!
1.000 as a percentage of 1.024 is 97.65625%
This means that your time will be 100-97.65625 = 2.34375% slow (at 4.000Mhz).
There are 60 secs in a minute, so this means you will loose 1.40625 secs every minute.....
1.40625 * 60 (mins, 1hour) = 84.375 secs an hour or 1Min 24.375 secs
84.375 (secs, hourly loss) * 12 = 1012.5 seconds or..... 1012.5/60 = 16.875 Mins OR..... 16 Mins 52.5 Second error in 12 hours
If the timer is interupt driven, assuming (using) TMR0 is set to a ratio of 1:1 then at 4.096Mhz, TMR0 will generate an interrupt every 250uS, the 4.000Mhz crystal every 256uS...... if we add D'04' to TMR0 in the interrupt routine (allowing for the 2clks to update it, see the datasheets) this will correct the time for you!
I.E.
MOVLW D'04' ;MOVE TMR0 OFFSET VALUE TO W
ADDWF TMR0,F ;ADD TO TIMER 0 TO CORRECT FOR 4.000MHZ CLOCK
Hope this helps! I need a lie down!!