18 Timers
-
Upload
jaime-e-velarde -
Category
Education
-
view
3.658 -
download
0
description
Transcript of 18 Timers
TIMERS DE LOS ATmega164P:
OPERACIÓN Y REGISTROS
Elaborado por: Ing. Jaime E. Velarde
2
LOS TIMERS
LOS TIMERS SON REGISTROS
CONTADORES ASCENDENTES Y
DESCENDENTES
LOS ATmega164P POSEEN TRES TIMERS:
TIMER 0, TIMER 1 Y TIMER 2
SE CONFIGURAN MEDIANTE LOS BITS DE
LOS REGISTROS DE CONTROL
PUEDEN TRABAJAR EN FORMA
DEPENDIENTE DEL PROGRAMA O POR
MEDIO DE INTERRUPCIONES
3
TIMER / CONTADOR 0
• ES DE 8 BITS
• LA SEÑAL DEL RELOJ PUEDE SER EXTERNA DETECTANDO EL FLANCO O INTERNA ESCALABLE
• CON OTROS DOS REGISTROS SE COMPARA PARA REALIZAR LA MODULACIÓN POR ANCHO DEL PULSO (PWM)
4
DIAGRAMA DE BLOQUES DEL
TIMER 0
PB0
PB3
PB4
5
REGISTROS DE CONTROL DEL
TIMER / CONTADOR 0
DESCRIPCIÓN
FOC0A Para obligar a una comparación A
FOC0B Para obligar a una comparación B
WGM02/1/0 Para controlar la secuencia del Registro Contador
COM0A1/0 Modo de operación de la Salida A de Comparación
COM0B1/0 Modo de operación de la Salida B de Comparación
CS02/1/0 Bits de selección del reloj para el Contador
6
MODOS DE OPERACIÓN DEL
TIMER / CONTADOR 0
WGM02/1/0 DESCRIPCIÓN FINALNUEVO
OCR0X
ENCENDIDO
DE TOV0
000Contador normal
ascendente0xFF Inmediato
En el valor
máximo
001 PWM de fase correcta 0xFF Al final Al inicio
010
Borrar el Timer al
emparejar al
comprador (CTC)
OCR0A InmediatoEn el valor
máximo
011 PWM rápido 0xFF Al inicioEn el valor
máximo
100 Reservado --- --- ---
101 PWM de fase correcta OCR0A Al final Al inicio
110 Reservado --- --- ---
111 PWM rápido OCR0A Al inicioEn el valor
máximo
7
MODO DE OPERACIÓN
NORMAL DEL TIMER 0
8
MODO DE OPERACIÓN CTC
DEL TIMER 0
9
MODO DE OPERACIÓN PWM
RÁPIDO DEL TIMER 0
10
MODO DE OPERACIÓN PWM DE
FASE CORRECTA DEL TIMER 0
11
SALIDAS EN LOS MODOS
CONTADOR NORMAL Y CTC DEL
TIMER / CONTADOR 0
COM0A1/0
(COM0B1/0)DESCRIPCIÓN
00Operación normal del Pórtico, OC0A (OC0B)
desconectada
01Cambios en OC0A (OC0B) al emparejarse en la
comparación
10Nivel bajo en OC0A (OC0B) al emparejarse en la
comparación
11Nivel alto en OC0A (OC0B) al emparejarse en la
comparación
12
SALIDA A, EN EL MODO PWM
RÁPIDO DEL TIMER / CONTADOR 0
COM0A1/0 DESCRIPCIÓN
00 Operación normal del Pórtico, OC0A desconectada
01
Con WGM02 = 0: Operación normal del Pórtico, OC0A
desconectada
Con WGM02 = 1: Cambios en OC0A al emparejarse en
la comparación
10Nivel bajo en OC0A al emparejarse en la comparación,
nivel alto al INICIO (señal no invertida)
11Nivel alto en OC0A al emparejarse en la comparación,
nivel bajo al INICIO (señal invertida)
13
SALIDA B, EN EL MODO PWM
RÁPIDO DEL TIMER / CONTADOR 0
COM0B1/0 DESCRIPCIÓN
00 Operación normal del Pórtico, OC0B desconectada
01 RESERVADO
10Nivel bajo en OC0B al emparejarse en la
comparación, nivel alto al INICIO (señal no invertida)
11Nivel alto en OC0B al emparejarse en la comparación,
nivel bajo al INICIO (señal invertida)
14
SALIDA A, EN EL MODO PWM DE FASE
CORRECTA DEL TIMER / CONTADOR 0
COM0A1/0 DESCRIPCIÓN
00 Operación normal del Pórtico, OC0A desconectada
01
Con WGM02 = 0: Operación normal del Pórtico, OC0A
desconectada
Con WGM02 = 1: Cambios en OC0A al emparejarse en
la comparación
10
Nivel bajo en OC0A al emparejarse en la comparación
con el contador ascendente, nivel alto al emparejarse
en la comparación con el contador descendente
11
Nivel alto en OC0A al emparejarse en la comparación
con el contador ascendente, nivel bajo al emparejarse
en la comparación con el contador descendente
15
SALIDA B, EN EL MODO PWM DE FASE
CORRECTA DEL TIMER / CONTADOR 0
COM0B1/0 DESCRIPCIÓN
00 Operación normal del Pórtico, OC0B desconectada
01 RESERVADO
10
Nivel bajo en OC0B al emparejarse en la comparación
con el contador ascendente, nivel alto al emparejarse
en la comparación con el contador descendente
11
Nivel alto en OC0B al emparejarse en la comparación
con el contador ascendente, nivel bajo al emparejarse
en la comparación con el contador descendente
16
SELECCIÓN DEL RELOJ EN EL
TIMER 0CS02/1/0 DESCRIPCIÓN
000 Sin señal en el reloj (contador detenido)
001 Reloj = clkI/O / 1 (sin pre escalamiento)
010 Reloj = clkI/O / 8 (desde el pre escalador)
011 Reloj = clkI/O / 64(desde el pre escalador)
100 Reloj = clkI/O / 256(desde el pre escalador)
101 Reloj = clkI/O / 1024(desde el pre escalador)
110 Reloj = flanco de bajada de la señal en el pin T0
111 Reloj = flanco de subida de la señal en el pin T0
17
ESCALAMIENTO DEL RELOJ
PARA LOS TIMERS 0 y 1
18
REGISTROS CONTADOR Y DE
COMPARACIONES DEL TIMER 0
19
HABILITACIÓN Y BANDERAS DE
INTERRUPCIONES DEL TIMER 0
DESCRIPCIÓN
TOIE0 Bit que habilita la interrupción por desbordamiento
OCIE0A Bit que habilita la interrupción por comparación A
OCIE0B Bit que habilita la interrupción por comparación B
TOF0Bandera que se enciende cuando ocurre el
desbordamiento
OCF0ABandera que se enciende cuando ocurre el
emparejamiento en la comparación A
OCF0BBandera que se enciende cuando ocurre el
emparejamiento en la comparación B
20
TIMER / CONTADOR 1
• ES DE 16 BITS
• LA SEÑAL DEL RELOJ ES SIMILAR AL DEL TIMER0
• TAMBIÉN PUEDE REALIZAR LA MODULACIÓN POR ANCHO DEL PULSO (PWM)
• TIENE CAPACIDAD DE CAPTURA MEDIANTE UNA SEÑAL EXTERNA O POR EL RESULTADO DEL COMPARADOR ANALÓGICO
21
DIAGRAMA DE BLOQUES DEL
TIMER 1PB1
PD5
PD4
PD6
22
REGISTROS DE CONTROL DEL
TIMER / CONTADOR 1
DESCRIPCIÓN
FOC1A Para obligar a una comparación A
FOC1B Para obligar a una comparación B
WGM13/2/1/0 Para controlar la secuencia del Registro Contador
COM1A1/0 Modo de operación de la Salida A de Comparación
COM1B1/0 Modo de operación de la Salida B de Comparación
CS12/1/0 Bits de selección del reloj para el Contador
ICNC1 Para cancelar el ruido en la entrada de captura
ICES1Bit para seleccionar el flanco de la entrada de
captura
23
MODOS DE OPERACIÓN 0..3
DEL TIMER / CONTADOR 1
WGM13/2/1/0 DESCRIPCIÓN FINALNUEVO
OCR1x
ENCENDIDO
DE TOV1
0000
Contador
normal
ascendente
0xFFFF InmediatoEn el valor
máximo
0001PWM de fase
correcta, 8 bits0x00FF Al final Al inicio
0010PWM de fase
correcta, 9 bits0x01FF Al final Al inicio
0011PWM de fase
correcta, 10 bits0x03FF Al final Al inicio
24
MODOS DE OPERACIÓN 4..7
DEL TIMER / CONTADOR 1
WGM13/2/1/0 DESCRIPCIÓN FINALNUEVO
OCR1x
ENCENDIDO
DE TOV1
0100
Borrar el Timer
al emparejar al
comprador
(CTC)
OCR1A InmediatoEn el valor
máximo
0101PWM rápido, 8
bits0x00FF Al inicio Al final
0110PWM rápido, 9
bits0x01FF Al inicio Al final
0111PWM rápido, 10
bits0x03FF Al inicio Al final
25
MODOS DE OPERACIÓN 8..11
DEL TIMER / CONTADOR 1
WGM13/2/1/0 DESCRIPCIÓN FINALNUEVO
OCR1x
ENCENDIDO
DE TOV1
1000
PWM de fase y
frecuencia
correcta
ICR1 Al inicio Al inicio
1001
PWM de fase y
frecuencia
correcta
OCR1A Al inicio Al inicio
1010PWM de fase
correctaICR1 Al final Al inicio
1011PWM de fase
correctaOCR1A Al final Al inicio
26
MODOS DE OPERACIÓN 12..15
DEL TIMER / CONTADOR 1
WGM13/2/1/0 DESCRIPCIÓN FINALNUEVO
OCR1x
ENCENDIDO
DE TOV1
1100
Borrar el Timer
al emparejar al
comprador
(CTC)
ICR1 InmediatoEn el valor
máximo
1101 RESERVADO - - -
1110 PWM rápido ICR1 Al inicio Al final
1111 PWM rápido OCR1A Al inicio Al final
27
SELECCIÓN DEL RELOJ EN EL
TIMER 1CS12/1/0 DESCRIPCIÓN
000 Sin señal en el reloj (contador detenido)
001 Reloj = clkI/O / 1 (sin pre escalamiento)
010 Reloj = clkI/O / 8 (desde el pre escalador)
011 Reloj = clkI/O / 64(desde el pre escalador)
100 Reloj = clkI/O / 256(desde el pre escalador)
101 Reloj = clkI/O / 1024(desde el pre escalador)
110 Reloj = flanco de bajada de la señal en el pin T1
111 Reloj = flanco de subida de la señal en el pin T1
REGISTRO CONTADOR Y DE
COMPARACIONES DEL TIMER 1
Para escribir los registros de 16 bits:
• Cargar el valor en 2 registros de 8 bits
• Escribir el byte alto, que se almacena
en el registro temporal, en seguida
• Escribir el byte bajo, que almacena los
dos bytes al mismo tiempo
28
29
DIAGRAMA DE LOS
COMPARADORES DEL TIMER 1
30
REGISTRO DE CAPTURA DEL
TIMER 1
31
HABILITACIÓN Y BANDERAS DE
INTERRUPCIONES DEL TIMER 1
DESCRIPCIÓN
OCIE1A
OCIE1B
Bits que habilitan las interrupciones por
comparación
TICIE1
TOIE1
Bits que habilitan las interrupciones por captura o
desbordamiento
OCF1A
OCF1B
Banderas que se encienden cuando ocurren los
emparejamiento en la comparaciones
ICF1
TOV1
Banderas que se encienden cuando ocurren la
captura o el desbordamiento
32
TIMER / CONTADOR 2
• ES DE 8 BITS
• EL RELOJ PUEDE SER EXTERNO O INTERNO, AMBOS ESCALABLES
• TAMBIÉN PUEDE REALIZAR LA MODULACIÓN POR ANCHO DEL PULSO (PWM)
• TIENE CAPACIDAD DE TRABAJAR EN FORMA ASINCRÓNICA
33
DIAGRAMA DE BLOQUES DEL
TIMER 2PC6
PC7PD7
PD6
34
REGISTROS DE CONTROL DEL
TIMER / CONTADOR 2
DESCRIPCIÓN
FOC2A
FOC2BPara obligar a una comparación
WGM22/1/0 Para controlar la secuencia del Registro Contador
COM2A1/0
COM2B1/0Modo de operación de las Salidas de Comparación
CS22/1/0 Bits de selección del reloj del Registro Contador
35
SELECCIÓN DEL RELOJ EN EL
TIMER 2CS22/1/0 DESCRIPCIÓN
000 Sin señal en el reloj (contador detenido)
001 Reloj = clkT2S / 1 (sin pre escalamiento)
010 Reloj = clkT2S / 8 (desde el pre escalador)
011 Reloj = clkT2S / 32 (desde el pre escalador)
100 Reloj = clkT2S / 64 (desde el pre escalador)
101 Reloj = clkT2S / 128 (desde el pre escalador)
110 Reloj = clkT2S / 256 (desde el pre escalador)
111 Reloj = clkT2S / 1024 (desde el pre escalador)
36
ESCALAMIENTO DEL RELOJ
PARA EL TIMERS 2
37
REGISTROS CONTADOR Y DE
COMPARACIONES DEL TIMER 2
38
HABILITACIÓN Y BANDERAS DE
INTERRUPCIONES DEL TIMER 2
DESCRIPCIÓN
OCIE2A
OCIE2B
Bits que habilitan las interrupciones por
comparación
TOIE2 Bit que habilita la interrupción por desbordamiento
OCF1A
OCF2B
Banderas que se encienden cuando ocurren los
emparejamiento en la comparaciones
TOV2Bandera que se enciende cuando ocurre el
desbordamiento
39
REGISTROS PARA QUE FUNCIONE
ASINCRÓNICAMENTE EL TIMER 2
DESCRIPCIÓN
EXCLK Bit que habilita la entrada del reloj externo
AS2 Bit que habilita el funcionamiento asincrónico
..……UBBits que indican que se está produciendo la
actualización del registro, en el modo asincrónico
TSM Bit que habilita la sincronización de los Timers
PSRASY
PSRSYNC
Reset del prescalador asincrónico (Timer2) y de los
prescaladores sincrónicos (Timers 0 y 1)