Configuração Timer0 do PIC18F4550 no CCS

Estou com alguns probleminhas na configuração do timer0 do PIC18F4550 no CCS, sigo as instruções de configuração do data sheet mas mesmo assim não consigo verificar o tempo correto:
fiz a conta
Obs. Este valor de 5ms foi para teste no osciloscópio. Se souber configurar correto com este valor faço o mesmo para 1 segundo.
a configuração de acordo com o datasheet é:
cpp code
pois estou com um cristal de 4Mhz mas trabalhando com o PIC a 32Mhz.
minha codificação:
cpp code
O problema é que vejo no osciloscópio o valor de 7ms, ou seja estou sem precisão ou não estou sabendo configurar direito!
Fiz o teste para 1 segundo mas tem erro também.
fiz a conta
vlr_timer = 65536 - (4Mh(fosc) * 0,005(tempo)) / 4 * 256 (Prescaler)
vlr_timer = 32286
Obs. Este valor de 5ms foi para teste no osciloscópio. Se souber configurar correto com este valor faço o mesmo para 1 segundo.

a configuração de acordo com o datasheet é:
cpp code
#fuses CPUDIV3
#fuses PLL1
#fuses HSPLL
pois estou com um cristal de 4Mhz mas trabalhando com o PIC a 32Mhz.
minha codificação:
cpp code
#int_TIMER0
TIMER0_isr() {
BOOLEAN led;
led = !led; //inverte o bit
output_bit(PIN_E0,led); //saida no pino 8
set_timer0(32286); //recarrega timer0
}
void main() {
...
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(32286);
enable_interrupts(INT_TIMER0);
for(;;);
...
}
O problema é que vejo no osciloscópio o valor de 7ms, ou seja estou sem precisão ou não estou sabendo configurar direito!
Fiz o teste para 1 segundo mas tem erro também.