Académique Documents
Professionnel Documents
Culture Documents
Luz Adanaqu
2.03.2016
Un timer no es ms que un contador cuya entrada est conectada al reloj del sistema.
De hecho, la mayora de los timers pueden reconfigurarse como contadores. En ese
caso, en lugar de contar pulsos de reloj cuentan los pulsos que llegan a un
determinado
pin.
Por defecto la seal que van a contabilizar los timers corresponde a la frecuencia del
oscilador dividida por cuatro. Por lo tanto en realidad cuentan ciclos mquina, no
ciclos de reloj. Con un reloj de 20 Mhz tendramos una frecuencia de ciclos mquina
de 20/4 = 5 MHz, por lo que un ciclo mquina corresponde a 0.2 us. En principio, el
contador del timer se incrementar cada 0.2 microsegundos o 5 veces en 1 us.
El perodo del reloj interno vara con el diseo, pero es fcil de obtener.
El 18F4550 tiene un puerto USB que depende de un reloj de 48 MHz (Fosc = 48MHz).
As, un diseo tpico est configurado para operar a esa frecuencia.
Eso hace que el perodo, TCY, de los ciclo de instruccin sea 83,3 ns (1 / Fcy). Por lo
tanto, cada uno de estos temporizadores se puede producir un tiempo medido contando
ciclos de instruccin. La resolucin est limitada por el perodo del ciclo de instrucciones.
Cada temporizador slo puede producir un intervalo de tiempo que es un mltiplo entero
de TCY:
Fosc = 48 MHz
Fcy = Fosc/4 = 12 MHz
Tcy = 1/Fcy = 83.3 ns
Los temporizadores tienen cada uno una funcin adicional llamada preescalador.
El Prescaler del TMR0 se puede fijar tan alto como 256. Esto cambia la
resolucin del temporizador mediante el aumento Trz por un factor de
256 por lo que en lugar de contar un pulso cada 83,3 ns contaramos
con un pulso cada 21,3.
Con este ajuste, el temporizador slo sera preciso al 21,3, pero ahora
tenemos un perodo de 256 veces ms. Esto permite tener al TMRO a
un perodo de tiempo de 1,4 segundos - el perodo de tiempo ms
grande de los 4 temporizadores.
Cada uno de estos temporizadores slo puede contar hasta el nmero de bit
disponible. Cuando llegan a ese valor vuelven a cero al igual que el
odmetro hace en un coche.
Ejemplo
Paso 1) Divide 1 ms por Trz (de divisor = 1 en este ejemplo: Trz = TCY) 1 ms / Trz =
1E-3 / 83.333E-9 = 12000
As que el recuento de partida tiene que ser 65.536 - 12.000 = 53.536. Es necesario
para cargar este nmero en el registro del temporizador como se inicia el
temporizador.
Para convertir este nmero decimal a hexadecimal realizar divisiones sucesivas por
16 Hacer un seguimiento de lo que queda para cada clculo.
53536/16 = 3346, resto = 0, 0x0
3346/16 = 209, resto = 2, 0x2
209/16 = 13, resto = 1, 0x1
13/16 = 0, el resto = 13, 0xD
Adems de establecer los bytes alto y bajo, tambin es necesario ajustar el registro
de configuracin para el temporizador y luego supervisar el indicador de
interrupcin.
El byte de configuracin tiene varias opciones para definir, pero lo principal es que
se convierte el temporizador de encendido y apagado.