GuiaNro4 Timers
GuiaNro4 Timers
GuiaNro4 Timers
LABORATORIO N°4
TEMPORIZADORES DEL MICROCONTROLADOR ATMEGA 32
E.H.G.M. W.M.
2.2 Registros básicos del temporizador
En cada uno de los temporizadores existe un registro TCNT que es el encargado de
almacenar el conteo de eventos. Después del reset todos los registros TCNT tienen
un valor igual a 0. Con cada pulso el valor del registro TCNT se incrementa en uno.
Este registro permite cargar valores en él o leer valores del mismo. Cada
temporizador tiene una bandera de desbordamiento TOV que se coloca en uno
cuando el conteo supera el valor máximo y retorna a 0.
Cada temporizador tiene también un registro de control TCCR para configurar los
modos de operación. Además se tiene un registro OCR para comparar su contenido
con el del registro TCNT, cuando ambos registros son iguales la bandera OCF se
coloca en 1 lógico.
Los registros temporizadores se encuentran en la memoria de entrada salida en la
sección de memoria RAM, por lo tanto es posible escribir valores en los registros
con la instrucción OUT y leer de ellos mediante la instrucción IN.
E.H.G.M. W.M.
Diagrama funcional de los temporizadores/contadores del microcontrolador
ATMEGA32, fuente: AVR microcontroller and embedded systems, Mazidi, Naimi,
Naimi
E.H.G.M. W.M.
CS02:CS00 (Fuente de reloj del temporizador 0)
Estos bits se utilizan para configurar la fuente de reloj. Si se elige CS02:CS00 = 000
el contador es detenido, si se elige un valor entre 001 y 101 el oscilador es utilizado
como fuente de reloj y el temporizador funciona como tal, pudiéndose generar
retardos de tiempo.
CS02 CS01 CS00 DESCRIPCIÓN
0 0 0 Temporizador/contador detenido
0 0 1 Temporiza a la frecuencia de reloj
0 1 0 Divide la frecuencia de reloj clk/8
0 1 1 Divide la frecuencia de reloj clk/64
1 0 0 Divide la frecuencia de reloj clk/256
1 0 1 Divide la frecuencia de reloj clk/1024
1 1 0 Fuente de reloj externa en el pin T0. Flanco descendente.
1 1 1 Fuente de reloj externa en el pin T0. Flanco ascendente.
Por el momento no utilizaremos los otros bits del registro TCCR0 y no los
explicaremos en detalle.
2.3.3 Registro TIFR
El registro TIFR contiene los bits bandera de los tres temporizadores del
microcontrolador ATMEGA 32.
E.H.G.M. W.M.
TOV0: Bit bandera de desbordamiento del temporizador 0
0: Timer0 no desborda
1: Timer0 se desborda
E.H.G.M. W.M.
temporizador 0 en modo normal, sin pre escalador. Considerando un cristal externo
de 4 MHz. tenderemos entonces un retardo de:
1
𝑇= = 0.250𝜇𝑠
4𝑀𝐻𝑧
Calculando que el temporizador 0 empiece en 0 su conteo y deba desbordarse
pasando 255 tendremos un retardo de:
255 ∙ 0.250𝜇𝑠 = 63.75𝜇𝑠
Retardo en muchos casos insuficiente para aplicaciones como el manejo de relojes
o control de motores paso.
2.5 Pasos para encontrar valores para cargar en el temporizador
Suponiendo que conocemos la cantidad de retardo del temporizador que
necesitamos, la pregunta es cómo encontrar los valores necesarios para el registro
TCNT0. Para calcular los valores a ser cargados en los registros TCNT0, podemos
usar los siguientes pasos:
1. Calcule el período del reloj temporizador utilizando la siguiente fórmula:
1
𝑇𝑐𝑙𝑘 =
𝑓𝑡𝑖𝑚𝑒𝑟
Donde 𝐹𝑡𝑖𝑚𝑒𝑟 es la frecuencia del reloj utilizada para el temporizador. Por
ejemplo, si configuramos el temporizador 0 en modo normal, sin pre
escalador 𝑓𝑡𝑖𝑚𝑒𝑟 = 𝑓𝑜𝑠𝑐𝑖𝑙𝑎𝑑𝑜𝑟
2. Divida el retardo de tiempo deseado por 𝑇𝑐𝑙𝑘 · Este resultado nos indica
cuántos ciclos de reloj necesitamos.
3. Realice 256 − 𝑛, donde 𝑛 es el valor decimal que obtuvimos en el Paso 2.
4. Convierta el resultado del paso 3 en hexadecimal, donde 𝑍𝑍 es el valor
hexadecimal inicial que debemos cargar en el registro del temporizador.
5. Establezca 𝑇𝐶𝑁𝑇0 = 𝑍𝑍.
3 Trabajo de laboratorio:
1. Transcribir el siguiente programa para el microcontrolador ATmega32 donde
se genera una señal cuadrada de ciclo útil 50% a través del pin 2 del puerto
B. Se utiliza el temporizador 0 para generar el retardo de tiempo con el pre
escalador en la escala 𝑓𝑜𝑠𝑐𝑖𝑙𝑎𝑑𝑜𝑟 /1024. Se sugiere un cristal oscilador de
4𝑀𝐻𝑧 o menor. Visualizar la frecuencia y el periodo de la señal mediante un
osciloscopio. Este es un ejemplo del uso del temporizador por Polling.
;
; Timer0_MetodoPolling.asm
;
; Created: 27/9/2021 10:54:16 a. m.
; Author : Erick Gutierrez MW
;
E.H.G.M. W.M.
.INCLUDE"M32DEF.INC" ;BIBLIOTECA CON LAS DEFINICIONES DEL MICRO
.ORG 0x00 ;INICIAMOS EN LA DIRECCIÓN 0
RJMP INICIO ;SALTO A LA ETIQUETA INICIO
INICIO: LDI R20,HIGH(RAMEND)
OUT SPH,R20
LDI R20,LOW(RAMEND)
OUT SPL,R20 ;INICIALIZACION DEL PUNTERO DE PILA
Laboratorio Microprocesadores II
Uso del Timer0 por Polling
Elaborado por Erick WM
RESET
10k
22pF
4MHz 9
RESET PC0/SCL
22
23
PC1/SDA
22pF 13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
f = 7.8125 Hz
26
PC4/TDO
OSCILADOR EXTERNO 40
39
PA0/ADC0 PC5/TDI
27
28 señal
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
Elaborado por Erick WM 37
PA3/ADC3 Erick WM
36
PA4/ADC4 PD0/RXD
14
128ms
- ATmega32 35
34
PA5/ADC5 PD1/TXD
15
16
PA6/ADC6 PD2/INT0
- Cristal de 4MHz 33
PA7/ADC7 PD3/INT1
17
18
PD4/OC1B
- Capacitores de 22pf 1
2
PB0/T0/XCK PD5/OC1A
19
20
PB1/T1 PD6/ICP1
- Botón Pulsador 3
4
PB2/AIN0/INT2 PD7/OC2
21
PB3/AIN1/OC0
- LED 5
6
PB4/SS 64ms
PB5/MOSI
- RESISTENCIAS 220R 7
PB6/MISO AREF
32
8
PB7/SCK Erick WM AVCC
30
ATMEGA32
LED
E.H.G.M. W.M.
2. Transcribir el siguiente programa para el microcontrolador ATmega32 donde
se genera una señal cuadrada de frecuencia 1𝐾𝐻𝑧. Este es un ejemplo del
uso del temporizador por medio de interrupciones.
;
; Timer0_MetodoInterrupciones.asm
;
; Created: 27/9/2021 2:11:46 p. m.
; Author : Erick Gutierrez MW
;
E.H.G.M. W.M.
Laboratorio Microprocesadores II
Uso del Timer0 por Interrupciones
Elaborado por Erick WM
f = 1KHz
36 14
PA4/ADC4 PD0/RXD
35 15
PA5/ADC5 PD1/TXD
34 16 señal
PA6/ADC6 PD2/INT0
33 17
PA7/ADC7 PD3/INT1
18
PD4/OC1B
Elaborado por Erick WM 1
PB0/T0/XCK PD5/OC1A
19
Erick WM
2
3
PB1/T1 PD6/ICP1
20
21 1ms
A PB2/AIN0/INT2 PD7/OC2
4
PB3/AIN1/OC0
5
B PB4/SS
6
PB5/MOSI
220R 7 32
C PB6/MISO AREF
8
PB7/SCK Erick WM AVCC
30
D
ATMEGA32
LED
0.5ms
E.H.G.M. W.M.
4. Configure al ATmega32 para que funcione como un timbre, de manera que
genere un tono de 400 Hz durante 3 segundos cuando se presione un botón.
En la figura se muestra el acondicionamiento del hardware con la salida
esperada. Este ejercicio se debe realizar en forma completa para obtener
la segunda firma.
Laboratorio Microprocesadores II
Esquema para la firma 2
Elaborado por Erick WM
RESET
10k
22pF
4MHz 9
RESET PC0/SCL
22
23
PC1/SDA
22pF 13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
OSCILADOR EXTERNO 40
39
PA0/ADC0 PC5/TDI
27
28
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
Elaborado por Erick WM 37
36
PA3/ADC3
14
ACTIVACION POR FLANCO DESCENDENTE
PA4/ADC4 PD0/RXD 10k
35 15
PA5/ADC5 PD1/TXD
34 16
PA6/ADC6 PD2/INT0
3s SOUNDER
33
PA7/ADC7 PD3/INT1
17
18
PD4/OC1B
1 19
PB0/T0/XCK PD5/OC1A
Erick WM 2
3
PB1/T1 PD6/ICP1
20
21
PB2/AIN0/INT2 PD7/OC2
4
PB3/AIN1/OC0
5
PB4/SS
INT0
6
PB5/MOSI
7 32
PB6/MISO AREF
400Hz 8
PB7/SCK Erick WM AVCC
30
ATMEGA32
Erick WM
E.H.G.M. W.M.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: