Vous êtes sur la page 1sur 14

Timers

Programación de Microcontroladores PIC


En Lenguaje C

MMJ Smart Electronics


Timers
Un timer es un circuito interno en el microcontrolador que funciona como
contador el cual determina un tiempo preciso entre el momento en que el
valor es cargado y el instante en el que se produce su desbordamiento.

Carga inicial

Pulsos de Fin del


entrada conteo

Contado ascendente

MMJ Smart Electronics


Comparación de Timers

MMJ Smart Electronics


Timers

Cuenta pulsos
Temporizador
internos
Timers
Cuenta pulsos
Contador
externos

MMJ Smart Electronics


TCY
TCY

MMJ Smart Electronics


TCY

1
Tos c =
F osc
1
Tos c = = 0.25uS
4M h z
T C Y = Tos c  4 = 1 u S

4
TCY = = 1uS
4M h z
MMJ Smart Electronics
Prescaler
Circuito programable que divide la frecuencia utilizada por
diversos rangos para poder conseguir temporizaciones más
largas.
Prescaler dive by 8
T0PS2:T0PS0 = 010

Clock TMR

Prescaler
Timer 0
modo 16 bits

• Timer de 8 o 16 bits, seleccionable por software


• Prescaler : 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128, 1:256
• Genera interrupción por overflow2
• Fuente de reloj seleccionable (interna / externa).
• Flanco seleccionable para fuente de clock externo
• Registros de control de lectura y escritura.

MMJ Smart Electronics


Timer 0
modo 16 bits

• Contador/Temporizador de 16 bits
• Se lee y escribe sobre 16 bits
• Overflow sobre 16 bits 0xFFFF a 0x0000

MMJ Smart Electronics


Cálculo de temporizaciones

¿Con qué presión saldrá


el agua de la llave?

• TCY
Tiempo en que tarda
• Prescaler
en llenarse el tambo
de agua será nuestro
Agua que se encuentra
tiempo de retardo
actualmente en el
tambo es igual carga

MMJ Smart Electronics


Cálculo de temporizaciones

t = TCY  prescaler (65536 − c arg a)


t
c arg a = ( ) −65536
TCY  prescaler

t = tiempo deseado TCY = Ciclo máquina Prescaler = Divisor de Freq


4/Fosc

MMJ Smart Electronics


Cálculo de temporizaciones

t
c arg a = ( ) −65536
TCY  prescaler
 
 200ms 
c arg a =   − 65536
 4
32 
 20MHz 
c arg a = 34286

t = 200ms TCY = 4/Fosc Prescaler = 32

MMJ Smart Electronics


Cálculo de temporizaciones
t = TCY  prescaler (65536 - c arg a)
CALCULO PARA 500ms
500 x 10^-3 = 1 x 10^-6 x pre (65536 - carga)
500 x 10^3 = pre (65536 - carga)
500000/8 = 65536 - carga
carga = 65536 - 62500
carga = 3036
T = 500ms
HEX = 0X0BDC TCY = 4/4Mhz
TMR0L=0XDC; Prescaler = 8

TMR0H=0X0B;
Cálculo de temporizaciones
t = TCY  prescaler (65536 - c arg a)
CALCULO PARA 1s
1000 x 10^-3 = 1 x 10^-6 x pre (65536 - carga)
1000 x 10^3 = pre (65536 - carga)
1000000/32 = 65536 - carga
carga = 65536 - 31250
carga = 34286 T = 1s
HEX = 0X85EE TCY = 4/4Mhz
TMR0L=0XEE; Prescaler = 3 2

TMR0H=0X85;

Vous aimerez peut-être aussi