Duda con el timer 0 2TCY delay

#1
Hola, tengo una duda con los timer del PIC en concreto 18f2550

En el Datasheet dice lo siguiente
If the TMR0 register is written to, the increment is inhibited for the following two instruction cycles. The user can work around this by writing an adjusted value to the TMR0 register.
Fig4.GIF
Que significan esos 2 TCY, son dos ciclos de instrucción, pero cuanto duran dos ciclos de instrucción, 2*(1/fosc) ó 2/(1/(fosc/4).

Esos 2 TCY, por ejemplo si tengo un prescaler de 32 sería imposible suprimirlos ajustando el registro TMR0 como indican en el datasheet ¿no es así?

En definitiva, esos 2 TCY significa que le tengo que sumar 8 al valor del contador, simpre y cuando no tenga un prescaler



Gracias por vuestra ayuda.
 
#2
Estas confundiendo la operacion con que se carga el Timer con la señal que hace incrementar el Timer. Ese delay de dos ciclos de instruccion tras cargar el Timer0 que menciona el datasheet no tiene nada que ver con el prescaler. Ese delay es un detalle que se ajusta al final de realizado el codigo y con ayuda de un simulador como proteus o mplab.
Saludos. bye.
 
#4
Lamento no haber respondido antes.
Queria decir que el retrazo de dos ciclos sera constante sin importar el factor de prescaler. Asi esta diseñado el Timer0. De hecho eso pasa en todos los pics, incluyendo el PIC16F84A. Esos 2 ciclos no son nada comparados con los ciclos que tendras que compensar en el codigo del programa como resultado del "context saving", si es que estas trabajando con interrupciones.
En todo caso, si de verdad quieres precision y no quieres hacerte bolas, y aunque no sé en que tipo de aplicacion andas, yo te sugiero que uses el timer2, que es mejor para estos propositos. El timer2 tiene "recarga automatica" que te salvara de preocuparte por detalles como los antes mencionados. Puedes temporizar con el timer2 incluso si ya lo estas usando para generar ondas pwm.
Bye.
 
#5
Muchas gracias, no me había dado cuenta de esa característica del timer 2.

Por otro lado, los cambios de contexto ¿cuantos ciclos serían?, en el manual de 8051 sí se explica, pero Microchip no lo hace mucho, ¿tal vez también dependa del compilador o es totalmente independiente?
 
#6
Con el Timer2 no tienes que preocuparte de los ciclos a compensar por el "context saving". Con los otros Timers, varía, segun el compilador utilizado o el ensamblador si es fuera caso. Eso, como dije antes, es un punto que tienes que ajustar al final con ayuda de un simulador, stopwatch en caso de ser el MPLAB o el Counter/Timer si usas Proteus.
 

Temas similares

Arriba