18 Timers

39
[email protected] 1 TIMERS DE LOS ATmega164P: OPERACIÓN Y REGISTROS Elaborado por: Ing. Jaime E. Velarde

description

Descripción de los registros que utilizan los Timers de los ATmega16

Transcript of 18 Timers

Page 1: 18 Timers

[email protected] 1

TIMERS DE LOS ATmega164P:

OPERACIÓN Y REGISTROS

Elaborado por: Ing. Jaime E. Velarde

Page 2: 18 Timers

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

Page 3: 18 Timers

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)

Page 4: 18 Timers

4

DIAGRAMA DE BLOQUES DEL

TIMER 0

PB0

PB3

PB4

Page 5: 18 Timers

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

Page 6: 18 Timers

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

Page 7: 18 Timers

7

MODO DE OPERACIÓN

NORMAL DEL TIMER 0

Page 8: 18 Timers

8

MODO DE OPERACIÓN CTC

DEL TIMER 0

Page 9: 18 Timers

9

MODO DE OPERACIÓN PWM

RÁPIDO DEL TIMER 0

Page 10: 18 Timers

10

MODO DE OPERACIÓN PWM DE

FASE CORRECTA DEL TIMER 0

Page 11: 18 Timers

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

Page 12: 18 Timers

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)

Page 13: 18 Timers

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)

Page 14: 18 Timers

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

Page 15: 18 Timers

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

Page 16: 18 Timers

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

Page 17: 18 Timers

17

ESCALAMIENTO DEL RELOJ

PARA LOS TIMERS 0 y 1

Page 18: 18 Timers

18

REGISTROS CONTADOR Y DE

COMPARACIONES DEL TIMER 0

Page 19: 18 Timers

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

Page 20: 18 Timers

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

Page 21: 18 Timers

21

DIAGRAMA DE BLOQUES DEL

TIMER 1PB1

PD5

PD4

PD6

Page 22: 18 Timers

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

Page 23: 18 Timers

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

Page 24: 18 Timers

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

Page 25: 18 Timers

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

Page 26: 18 Timers

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

Page 27: 18 Timers

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

Page 28: 18 Timers

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

Page 29: 18 Timers

29

DIAGRAMA DE LOS

COMPARADORES DEL TIMER 1

Page 30: 18 Timers

30

REGISTRO DE CAPTURA DEL

TIMER 1

Page 31: 18 Timers

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

Page 32: 18 Timers

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

Page 33: 18 Timers

33

DIAGRAMA DE BLOQUES DEL

TIMER 2PC6

PC7PD7

PD6

Page 34: 18 Timers

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

Page 35: 18 Timers

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)

Page 36: 18 Timers

36

ESCALAMIENTO DEL RELOJ

PARA EL TIMERS 2

Page 37: 18 Timers

37

REGISTROS CONTADOR Y DE

COMPARACIONES DEL TIMER 2

Page 38: 18 Timers

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

Page 39: 18 Timers

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)