Registros Del Timer

Share Embed Donate


Short Description

PROGRAMACION...

Description

Registros del Timer/Counter0 Para Para contro controlar lar los modos modos de funcio funcionam namient iento o y la frecue frecuenci ncia a de trabaj trabajo, o, el timer0 timer0 tiene tiene asociados asociados varios varios registros registros los cuales cuales se describen describen mas adelante. A parte de los registros, el timer0 tiene la capacidad recibir una frecuencia de reloj externa mediante el pin T0 P!0" y de cambiar el estado de la salida en el pin #C0, $ue es la salida del comparador del timer%

TCCR0: TCCR0: (Timer/Cou (Timer/Counter nter Control Register) Register) &ste registro configura la frecuencia a la $ue trabajar' el timer, el modo de trabajo y si el timer controlar' la salida del pin asociado a el, en este caso el pin #C0.

Registro TCCR0 Timer/Counter Control Register" 

(#C0% (#C0% &scrib &scribiend iendo o un ) en este bit, fuer*a fuer*a a $ue se realic realice e una coincide coincidenci ncia a de comparaci+n y acta sobre el pin #C0 si se usa.



-0)%0% Configura el modo de funcionamiento del timer0.



C#0)%0% &stos bits

configuran el

uso

del pin #C0

comparaci+n dependiendo del modo $ue se trabaje.

alida del comparador en modo 1#2P- 1ormal + CTC"

alida del comparador en modo (AT P-

con el

modulo

de

alida del comparador en modo P3A& C#RR&CT P- 

C04%0% Con estos bits se selecciona l a fuente del reloj para el timer, puede ser interna con un prescaler o externa con una se5al de reloj en el pin T0.

Configuraci+n del prescaler para frecuencia del Timer/Counter0

TCNT0:

(Timer/Counter

Register) &ste

registro es

el

$ue

guarda

la

cuenta

del

Timer/Counter0 0 a 466".

Registro TC1T0 Timer/Counter Register"

OCR0: (Output Compare Register) A$u7 se guarda el valor a comparar con el registro TC1T0. Cuando el valor del registro TC1T0 coincide con el valor guardado en este registro, se reali*a el evento programado para la coincidencia en comparaci+n, ya sea generar una interrupci+n o cambiar el estado del pin #C0.

Registro #CR0

TIMSK:

(Timer Interrup Mask Register) &n este registro se encuentran los bits de

8abilitaci+n de interrupciones para cada timer, a nosotros nos interesa el bit T#9&00" y #C9&0)" $ue son los correspondientes al timer0.

Regitro T9: Timer/Counter 9nterrup as; Register" 

T#9&0% &scribir a ) en este bit 8abilita la interrupci+n por desbordamiento del TimerCounter0 Timer/Counter #verflo< 9nterrupt &nable 0" si tambi=n se 8abilitan las interrupciones globales con el bit 9 en R&.



#C9&0%&scribir a ) en este bit 8abilita la interrupci+n por coincidencia en la comparaci+n del Timer/Counter0con el registro #CR0 #utput Compare 9nterrupt &nable 0", si tambi=n se 8abilitan las interrupciones globales con el bit 9 en R&. TIFR: (Timer Interrup Flag Register) &n este registro se encuentran las banderas de interrupciones para cada timer, a nosotros nos interesa el bit T#>00" y #C(0)" $ue son los correspondientes al timer0.

Registro T9(R 

T#>0% Cuando este bit se pone a ) se genera la interrupci+n por desbordamiento del Timer/Counter0. &ste bit se limpia cuando cuando entra a la funci+n $ue atiende la interrupci+n o escribiendo un ) en este bit.



#C(0% Cuando este bit se pone a ) se genera la interrupci+n por coincidencia en la comparaci+n del Timer/Counter0 con el registro #CR0. &ste bit se limpia cuando cuando entra a la funci+n $ue atiende la interrupci+n o escribiendo un ) en este bit. Como se mencion+ anteriormente, los timers son complicados, as7 $ue en este primer post dedicado al Timer/Counter0, se ver' su funcionamiento en modo 1ormal con ejemplos $ue usen poleo e interrupciones y fuentes de reloj internas y externas. e 8ace esto de explicar un modo en cada post con el fin de profundi*ar y utili*ar todas las caracter7sticas del timer.

Timer/Counter0 en odo 1ormal &n este modo el timer0 cuenta desde !#TT# 8asta T#P !#TT# ? 0, T#P ? 466" y al pasar la cuenta empie*a de nuevo desde !#TT#. &l timer puede generar interrupciones de desbordamiento al pasar de T#P a !#TT#" y de coincidencia en comparaci+n con el registro #CR0. &n estos primero ejemplos se usara el reloj del CP@ como fuente de reloj para el timer, descartando el pin T0. Para saber a $ue frecuencia y con $ue periodo trabajar' el timer, es necesario saber algunas f+rmulas para calcular tiempos con exactitud. Para calcular la frecuencia del timer, se divide la frecuencia del CP@ entre el prescaler  deseado%

(+rmula para calcular la (recuencia del Timer 

Por lo $ue el periodo de la cuenta del timer ser7a el inverso a la frecuencia del timer%

(+rmula para calcular el Periodo de cuenta del Timer 

&sto significa $ue el timer se incrementara cada

Ttimer

segundos, si $ueremos saber cada

cuanto tiempo se desbordar' el timer, se multiplica el periodo del timer por la resoluci+n del timer, $ue en este caso es de  bits 46B"%

(+rmula para calcular el tiempo de desbordamiento del Timer 

Con la f+rmula anterior podemos saber cada cuanto tiempo se desborda el timer, pero si $ueremos saber el $ue valor $ue debe de tener el timer para un determinado tiempo dentro del rangoToverflow se aplica una sencilla regla de %

(+rmula para calcular el valor del Timer para determinado tiempo.

Por ejemplo% upongamos $ue tenemos nuestro micro con una frecuencia de  8* y un prescaler para el timer de )04D, la frecuencia del timer ser7a% Ft = 000000 !" / #0$% = &#$' !" Tt = # /&#$' !" = 0'000#$ segunos = #$ mi*rosegunos To+, = #$ mi*rosegunos - $. = $&. mi*rosegunos = $' milisegunos Con estos valores el timer se desbordar7a cada 4. milisegundos, si $ueremos medir en intervalos de )0 milisegundos, aplicamos la regla de  para saber $ue valor tendr' el timer  cuando 8ayan transcurrido )0 ms% Cuenta el Timer = #0 ms - $. / $'  # = &1'% &sto $uiere decir $ue cuando el timer 8aya contado EF pasos 8abr'n transcurrido aproximadamente )0 ms.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF