contar tempo com PIC

Olá
Há muito tempo q em vários projetos preciso ter um contador de tempo relativamente preciso.
Fiz e refiz diversos calculos, baixei calculadoras para ajustar os timers e configurei o PIC exatamente como tudo indicava. Mas o que obtive foi só decepção pois o tempo não fica preciso. (Erro de aproximadamente 3 segundos a cada minuto.)
Utilizei timers 8bits, 16 bits, com e sem pre-load, vários PICs e diversos osciladores sem sucesso.
A maneira que encontrei para desviar desse problema foi em usar uma regra de três junto com o erro gerado para aproximar um valor mais preciso e "calibrar" os timers.
Dessa forma por aproximação funciona mas eu quero descobrir o motivo do erro.
Estou usando um cristal então erro por causa do oscilador não é. Desabilitei todas interrupções por isso alguma outra acontecendo junto com os timers tb está descartado.
Uma coisa que me chamou a atenção foi em alguns programas que baixei para calcular os valores dos timers. Neles é preciso informar um parametro chamado "Re-load (instr cycle)" para ele fazer o cálculo dos valores corretamente. O problema é que não intendi que parâmetro é esse e talvez seja uma pista para meus problemas com os timers.
Se alguém de vcs puder me ajudar, ou quem já conseguiu obter uma contagem precisa puder me descrever como fez eu ficaria mt agradecido.
Há muito tempo q em vários projetos preciso ter um contador de tempo relativamente preciso.
Fiz e refiz diversos calculos, baixei calculadoras para ajustar os timers e configurei o PIC exatamente como tudo indicava. Mas o que obtive foi só decepção pois o tempo não fica preciso. (Erro de aproximadamente 3 segundos a cada minuto.)
Utilizei timers 8bits, 16 bits, com e sem pre-load, vários PICs e diversos osciladores sem sucesso.
A maneira que encontrei para desviar desse problema foi em usar uma regra de três junto com o erro gerado para aproximar um valor mais preciso e "calibrar" os timers.
Dessa forma por aproximação funciona mas eu quero descobrir o motivo do erro.
Estou usando um cristal então erro por causa do oscilador não é. Desabilitei todas interrupções por isso alguma outra acontecendo junto com os timers tb está descartado.
Uma coisa que me chamou a atenção foi em alguns programas que baixei para calcular os valores dos timers. Neles é preciso informar um parametro chamado "Re-load (instr cycle)" para ele fazer o cálculo dos valores corretamente. O problema é que não intendi que parâmetro é esse e talvez seja uma pista para meus problemas com os timers.
Se alguém de vcs puder me ajudar, ou quem já conseguiu obter uma contagem precisa puder me descrever como fez eu ficaria mt agradecido.