Академический Документы
Профессиональный Документы
Культура Документы
!
!
=
= !"! !"#
! !"#$%
Tipos
de
Timers.
En
los
chips
AVR
Atmega
168
y
Atmega
328
disponemos
de
3
Timers,
en
los
Atmega
1280
y
Atmega
2560
contamos
con
6.
Timer
0:
Temporizador
de
8
bits
(registrar
como
mximo
256
valores).
Es
usado
en
las
funciones
delay()
y
millis(),
por
lo
que
debemos
tenerlo
en
cuenta
a
la
hora
de
programar.
Timer
1:
Temporizador
de
16
bits
(registrar
como
mximo
1024
valores).
Es
usado
en
la
librera
servo,
por
lo
que
deberemos
tenerlo
en
cuenta
a
la
hora
de
programar.
Timer
2:
Temporizador
de
8
bits.
Es
muy
similar
al
Timer
0
y
es
usado
por
la
funcin
tono().
Timer
3,
4
y
5:
Estos
tres
Timers
son
usados
por
los
chips
Atmega
1280
y
Atmega
2560.
Los
tres
son
de
16
bits
y
funcionan
de
manera
muy
similar
al
Timer
1.
Configurar
y
ejecutar
Timer.
Para
poder
usar
los
Timers
o
contadores,
deberemos
modificar
sus
registros.
Para
este
segundo
ejemplo
vamos
a
usar
el
Timer
1
(16
bits,
al
modificarlo
no
podremos
usar
la
funcin
servo),
por
lo
que
nos
centraremos
en
los
registros
TCCR1A,
TCCR1B
y
TIMSK
(TCCR
Timer
Counter
Control
Register,
TIMSK
Timer/counter
Interrupt
Mask
register).
Los
registros
tienen
la
siguiente
composicin:
1er
ejemplo
!=
1
1
=
= !"! !"#
! 16!"#
2!"!! = 65535 65535 62! 5!" = 0! 0041! !! !"#
Como
vemos
el
tiempo
de
parpadeo
es
tan
rpido
que
ser
prcticamente
imperceptible
para
el
ojo
humano.
2
ejemplo
Para
evitar
el
problema
del
primer
ejemplo
vamos
a
hacer
que
la
velocidad
de
parpadeo
sea
de
1s
gracias
al
uso
del
preescaler
y
del
CTC.
!=
1
1
1024
=
=
= !"#$
!/!"##$%&'#" 16!"#/1024 16!"#
2!"!! = 65535 64!" = !! !"#$
Con
el
uso
del
preescaler
provocamos
que
el
timer
finalice
su
ciclo
cada
4194s
por
lo
que
debemos
finalizar
el
ciclo
3194s
antes,
para
ello
vamos
hacer
uso
del
CTC.
!"#$% !"! =
!"#$%& !"#"$!%
1!
1 !"! =
1 = !"#$%
!!"#$%&'! !"#$%
64!"
Este
valor
se
almacenar
en
el
registro
OCR1A,
el
cual
se
comparar
por
constantemente
con
el
Timer.