Gianni, Perhaps using a 4.194304 Mhz crystal and a prescaler selected to allow you to complete your total instructions cycle once and then poll for the timer0 is = 0. You will need to ensure that your code for any case will always fall within a given N * timer0 rollover. This can be ensured by specifically placed NOPs in many cases, and effectively can be looked at as a "agumenting the timer0" This will allow you to have exact timing from timer0 to 0 and thus allow a more accurate initial approach. The next thing I might mention is to use a 20 ppm crystall with a tested drive resistor to limit the crystall m/uW drive. This allows some release from Vcc and noise. Using low drift capacitors (fixed) or make one leg capacitance to ground with a variable cap or fixed and variable cap combination. The lower pF variable caps have a lower cap shift to temp ppm variance. (on the xtal to gnd.) FWIW good luck Eric Borcherding