Vous êtes sur la page 1sur 22

TEMPORIZADORES

(TIMERS EN ATMEGA16)

CANTIDAD DE TIMERS EN ATMEGA16


ATmega16: 3 timers

Timer 0: 8b

Timer 1: 16b

Timer 2: 8b

Nomenclatura general para timers de 8 bits:

BOTTOM: Cuando el contador se vuelve 0x00.

MAX: Cuando el contador se vuelve 0xFF.

TOP: Cuando el contador llega al mximo valor de conteo. Este puede ser un
nmero fijo (MAX = 0xFF) o bien, un nmero variable dentro en el registro
OCR0. El valor depende del modo de operacin.

Nomenclatura general para timers de 16 bits:

BOTTOM: Cuando el contador se vuelve 0x0000.

MAX: Cuando el contador se vuelve 0xFFFF.

TOP: Cuando el contador llega al mximo valor de conteo. Este puede ser un
nmero fijo (0x00FF, 0x01FF o 0x03FF) o bien, un nmero variable dentro de los
registros OCR1A o ICR1. El valor depende del modo de operacin.

TIMER 0: GENERALES
Utiliza 2 registros compartidos:

Caractersticas generales:

TIFR: Banderas de todos los timers.

TCCR0

TIMSK: Bits de activacin de


interrupciones en todos los timers.

8 bits
Comparte prescaler con el Timer 1.
Puede trabajar como temporizador
o como contador:

TCNT0
TOV0

Temporizador: Cuenta pulsos de


reloj.
Contador: Cuenta pulsos externos
que entran por T0 (PB0).

OCF0

SFIOR: Special Function I/O Register.


Contiene el bit PSR10, el cual genera
un reset en el prescaler de los timers 0
y 1.

Utiliza 3 registros propios:


TCNT0: Conteo de pulsos.

OCR0

OCR0: Output compare register


(modo de comparacin).
TCCR0: Registro de control del timer
0.

TIMER 0: GENERALES

Oscillator

0
COUT

External
source

Counter register

Counter/Timer

Flag

FOC0

WGM00

COM01

COM00

WGM01

CS02

CS01

CS00

TCCR0

OCF2

TOV2

ICF1

OCF1A

OCF1B

TOV1

OCF0

TOV0

TIFR

TIMER 0: TCCR0 CLOCK SELECT


FOC0

WGM00 COM01

COM00 WGM01

CS02

CS01

CS00

TCCR0

Clock Select (CS02:0)


CS02 CS01 CS00
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

Comment
No clock source (Timer/Counter stopped)
clk (No prescaling)
clk / 8
clk / 64
clk / 256
clk / 1024
External clock source on T0 pin. Clock on falling edge.
External clock source on T0 pin. Clock on rising edge.

TIMER 0: TCCR0 CLOCK SELECT


PSR10

CS00
CS01
CS02

clk/1024

clk/256

clk/8

10-bit T/C Prescaler

clk/64

Clear

clkIO

Timer/Counter0 clock
source

T0

- EDGE DETECTOR -

TIMER 0: TCCR0 WAVEFORM GENERATION MODE


FOC0

WGM00 COM01

COM00 WGM01

CS02

CS01

Waveform Generation Mode (WGM01:0)

WGM01 WGM00 Comment

0
0
1
1

0
1
0
1

Normal
PWM, phase correct
CTC (Clear Timer on Compare Match)
Fast PWM

CS00

TCCR0

TIMER 0: TCCR0 COMPARE MATCH OUTPUT


MODE
FOC0

WGM00 COM01

COM00 WGM01

CS02

CS01

CS00

Compare Match Output Mode (COM01:0)

Estando en modo normal o CTC (WGM01:0 en 00 o 10):

COM01 COM00 Comment


0
0
Normal port operation, OC0 disconnected.
0
1
Toggle OC0 on compare match.
1
0
Clear OC0 on compare match.
1
1
Set OC0 on compare match

TCCR0

TIMER 0: TCCR0 FORCE OUTPUT COMPARE


FOC0

WGM00 COM01

COM00 WGM01

CS02

CS01

CS00

TCCR0

Force Output Compare (FOC0)

Bit activo solo en modos distintos a PWM.


Este bit se debe de escribir en cero cuando se utilice un modo PWM.
Al escribir un uno lgico en este bit, se genera una comparacin en la
Waveform Generation unit. La salida OC0 cambiar su estado acorde a la
Configuracin COM01:0.
Una comparacin generada por este bit, no detona interrupcin.
Una comparacin generada por este bit, no vuelve TCNT0=0x00.

TIMER 0: MODO NORMAL


Conteo incremental nicamente.
TCNT0

0xFF
(MAX)

El timer cuenta hasta 0xFF y en el siguiente ciclo de reloj,


regresa a 0x00 (TCNT0 es el registro que lleva la cuenta).
En el ciclo de reloj que TCNT0 llega a 0x00, la bandera
TOV = 1
Timer/Counter Overflow Flag (TOV0) es activada
(TOV0=1).
La bandera TOV0 se borra por hardware al momento de que
entra la interrupcin.
Si no hay interrupciones activas, TOV0 debe de ser borrada
por software. Esto se realiza escribiendo un uno lgico a
esta bandera.
No se recomienda utilizar el modo normal para generar
seales, dado que se requiere mucho trabajo de CPU para
lograrlo.

TIMER 0: MODO CLEAR TIMER ON COMPARE


MATCH (CTC)
Conteo incremental nicamente.
El registro OCR0 determina la resolucin del timer.
TOP=OCR0.
Cuando TCNT0 es igual a TOP, en el siguiente ciclo de reloj,
TCNT0=0x00.
Cuando TCNT0=TOP, la bandera OCF0 se activa. Cuando hay
interrupcin, OCF0 se borra por hardware, si no, por software.

La actualizacin de TOP es inmediata, dado que no hay doble


buffer. CUIDADO al cambiarlo!!
Para generar una onda, COM01:0 puede ser igual a 0x01, lo cual
generar un toggle en OC0 cada vez que TCNT0=TOP.
Si el timer cuenta hasta MAX, cuando TCNT0 pase a 0x00, se
activar la bandera TOV0.

N: Prescale factor (1, 8, 64, 256 o 1024)

TIMER 2: GENERALES
Su funcionamiento es casi igual al del Timer 0.

Las tres diferencias son:


No tiene contador de eventos externos.
Puede tener reloj de tiempo real conectado a
TOSC1 (PC6) y TOSC2 (PC7), generando
operacin asncrona.
Cuenta con su propio prescaler.

Registros compartidos: TIFR, TIMSK y SFIOR.


Registros propios: TCCR2, TCNT2, OCR2 y
ASSR.
ASSR es el registro encargado de la operacin
asncrona. Ms detalles en la hoja de
especificaciones.

TIMER 1: GENERALES
Utiliza 2 registros compartidos:

Caractersticas generales:
16 bits

OCR1BH

OCR1BL

Comparte prescaler con el Timer 0.


Dos unidades de comparacin
independientes.

Contador: Cuenta pulsos externos


que entran por T0 (PB0).

TIMSK: Bits de activacin de interrupciones en


todos los timers.

SFIOR: Special Function I/O Register. Contiene el


bit PSR10, el cual genera un reset en el prescaler
de los timers 0 y 1.

Utiliza 3 registros propios:

TCNT1H TCNT1L

15 modos de operacin, siendo 12 los


de PWM.

Temporizador: Cuenta pulsos de


reloj.

TIFR: Banderas de todos los timers.

OCF1B

Una unidad de captura.

Puede trabajar como temporizador o


como contador:

TOV1

OCR1AH

TCNT1: Conteo de pulsos en 16 bits (registros


TCNT1H y TCNT1L).

OCR1AH y OCR1AL: Output compare register A


(modo de comparacin en 16b).

OCR1BH y OCR1BL: Output compare register B


(modo de comparacin en 16b).

ICR1: Input Capture Register (registros ICR1H e


ICR1L).

TCCR1A y TCCR1B: Registros de control del


timer 1.

OCF1A

OCR1AL

TIMER 1: TCCR1A / TCCR1B CLOCK SELECT


COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1A

ICNC1

ICES1

WGM13

WGM12

CS12

CS11

CS10

TCCR1B

Clock Select (CS)


CS12 CS11 CS10

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Comment
No clock source (Timer/Counter stopped)
clk (No Prescaling)
clk / 8
clk / 64
clk / 256
clk / 1024
External clock source on T1 pin. Clock on falling edge.
External clock source on T1 pin. Clock on rising edge.

TIMER 1: TCCR1A / TCCR1B WAVEFORM


GENERATION MODE
COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1A

ICNC1

ICES1

WGM13

WGM12

CS12

CS11

CS10

TCCR1B

Waveform Generation Mode (WGM13:0)

TIMER 1: TCCR1A / TCCR1B COMPARE OUTPUT


MODE FOR CHANNELS A AND B
COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1A

ICNC1

ICES1

WGM13

WGM12

CS12

CS11

CS10

TCCR1B

Compare Output Mode for Channels A and B (COM1x1:0)


Estando en modo normal o CTC (WGM13:0 en 0000, 0100, o 1100):

COM1x1 COM1x0 Comment


0
0
Normal port operation, OC1x disconnected.
0
1
Toggle OC1x on compare match.
1
0
Clear OC1x on compare match.
1
1
Set OC1x on compare match

TIMER 1: TCCR1A / TCCR1B FORCE OUTPUT


COMPARE FOR CHANNELS A AND B
COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1A

ICNC1

ICES1

WGM13

WGM12

CS12

CS11

CS10

TCCR1B

Force Output Compare for Channels A and B (FOC1x)

Bits activos solo en modos distintos a PWM.


Estos bits se deben de escribir en cero cuando se utilice un modo PWM.
Al escribir un uno lgico en estos bits, se genera una comparacin en la
Waveform Generation unit. La salida OC1x cambiar su estado acorde a la
Configuracin COM1x1:0.
Una comparacin generada por estos bits, no detona interrupcin.
Una comparacin generada por estos bits, no vuelve TCNT1=0x0000.

TIMER 1: TCCR1A / TCCR1B INPUT CAPTURE


NOISE CANCELER
COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1A

ICNC1

ICES1

WGM13

WGM12

CS12

CS11

CS10

TCCR1B

Input Capture Noise Canceler (ICNC1)

Al activar este bit en uno, la entrada de Input Capture Pin (ICP1) es filtrada.
Cuando ICP1 es filtrada, significa que requiere una seal con el mismo valor
durante 4 ciclos de reloj (reloj base, no con prescaler).

TIMER 1: TCCR1A / TCCR1B INPUT CAPTURE


EDGE SELECT
COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1A

ICNC1

ICES1

WGM13

WGM12

CS12

CS11

CS10

TCCR1B

Input Capture Edge Select (ICES1)

Este bit define el flanco que genera la captura en ICP1.


Cero lgico define flanco de bajada.
Uno lgico define flanco de subida.
Cuando una captura se genera por ICP1, el valor del contador (TCNT1) es
copiado al registro ICR1 (Input Capture Register) y se activa la bandera ICF1.

TIMER 1: UNIDAD DE CAPTURA

Analog Comparator Control and Status Register (ACSR)


ACIC: Analog Comparator Input Capture Enable:
0: ICP1 genera la seal de captura.
1: ACO (Analog Comparator Output) genera la seal de captura.

TIMER 1: UNIDAD DE CAPTURA

Vous aimerez peut-être aussi