P. 1
Informe Reloj

Informe Reloj

|Views: 27|Likes:
Publicado poredwinrr7

More info:

Published by: edwinrr7 on Feb 08, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

03/24/2014

pdf

text

original

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE CIENCIA APLICADAS CIME SISTEMAS MICROPROCESADOS

TEMA: RELOJ EN TIEMPO REAL UTILIZANDO EL TIMER1 DEL ATMEGA324P Y UN OSCILADOR EXTERNO DE 32KHZ

INTEGRANTES: TABITA QUILUMBAQUIN SANTIAGO ROBLES EDWIN RUIZ FERNADO VILLALBA

IBARRA, 12 DE JULIO DEL 2012

que potencialmente pueden interferir con el reloj de tiempo real. Objetivos Específicos  Configurar los registros del timer1 para trabajar un generador de pulsos externos (usar un cristal externo de 32khz)  Usar la LCD para mostrar el tiempo que genera el timer1. 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. ¿Por qué utilizar un temporizador Timer1? En algunos casos no se puede utilizar el reloj de tiempo real integrado para medir los intervalos de tiempo. tiene capacidad de trabajar en forma asincrónica TIMER1 Los sistemas BasicX tienen un temporizador integrado denominado Timer1. tiene capacidad de captura El timer / contador 2 es de 8 bits con pwm. Este temporizador puede utilizarse para múltiples funciones. una de las cuales es medir los intervalos de tiempo. OBJETIVOS Objetivo General: Usar el timer1 para generar una onda cuadrada de un segundo exacto.20 a los 7. Otra razón para utilizar el temporizador Timer1 es medir los intervalos de tiempo con resoluciones menores que la que ofrece el reloj de tiempo real. MARCO TEÓRICO LOS TIMERS Los timers son registros contadores ascendentes los atmega164p poseen tres timers: timer 0. .INFORME DE LA PARCTICA TEMA: Reloj en tiempo real utilizando el timer1 del Atmega y un oscilador externo de 32khz. Las tasas de marcación de Timer1 son como mínimo 10 veces inferiores. Esto es posible si utiliza llamadas del sistema PulseIn o RCtime para medir los intervalos de tiempo superiores a 2 ms. El temporizador puede operar con 5 frecuencias de marcación discretas que oscilan entre los 7. lo que significa que puede utilizar el temporizador Timer1 para medir intervalos de tiempo que oscilen entre 136 ns y 139 ms. que tiene una tasa de marcación de 512 Hz. que es el que vamos a analizar en esta nota de aplicación.37 MHz aproximadamente. CAPACIDADES DE LOS TIMERS • • • El timer / contador 0 es de 8 bits con pwm El timer / contador 1 es de 16 bits con pwm.  Comprobar el funcionamiento de los periféricos de salida con el montaje realizado en un protoboard .

TCNT1H = 0 Register. Tenga en cuenta que escribir un valor lógico 1 para el bit acabaría borrándolo: Const TOV1 As Byte = bx10000000 ' BX-01 Const TOV1 As Byte = bx00000100 ' BX-24. Así se desconecta el Timer1 de los pines de salida OC1A y OC1B.DIAGRAMA DE BLOQUES DEL TIMER 1 Modo de uso del temporizador Timer1 Iniciación El temporizador debe iniciarse antes de empezar a utilizarlo. y desactiva la operación PWM del temporizador: Register. El byte alto debe escribirse en primer lugar.TCNT1L = 0 El último paso de la iniciación es borrar el indicador de desbordamiento TOV1.TIFR = TOV1 . y a continuación el byte alto: Register.TCCR1A = 0 El siguiente paso es borrar los 2 bytes del contador del Timer1. BX-35 Register. que corresponde con un bit en el registro TIFR. El primer paso es poner a cero el registro de control TCCR1A del temporizador Timer1.

y a continuación.568 9 2. (ms) (Hz) 0.102 Valor TCCR1B 1 2 3 4 5 Lectura del temporizador Timer1 Una vez que se ha arrancado el temporizador. debe leer el valor de byte bajo.680 555 34.135 633 7 1.085 069 8. Count As Long LowByte = Register.TCNT1H Count = CLng(HighByte) * 256 + CLng(LowByte) SIMULACION: .722 22 138. en el que el valor superior debe escribirse antes): Dim LowByte As Byte. debe leer el valor inferior del byte y después el valor superior (al contrario que el proceso de escritura del contador. Para leer el contador.888 9 7 373 800 921 600 115 200 28 800 7 200 0. se puede arrancar el temporizador escribiendo uno de los 5 valores enumerados para uno de los registros de control (TCCR1B) del temporizador.Arranque del temporizador Timer1 Una vez que el Timer1 ha sido iniciado.071 11 0.276 9. HighByte As Byte. Los valores disponibles aparecen a continuación: Rango de Resolución Frecuencia tiempo de pulsos máximo del timer (s).008 889 0.TCNT1L HighByte = Register. puede leerlo en cualquier momento a través de los dos registros de tiempo TCNT1L y TCNT1H.

return 0.CODIGO: /* * intento_1_timer1_reloj. FILE *stream) { LCDsendChar(c). } ISR(TIMER0_OVF_vect) { seg ++.//CARGAR DENUEVO EL NUMERO } int main(void) { DDRB|=(1<<PB0). //EXORT } TCNT0 = 177.h> #include <avr/pgmspace. //----inicio de la lcd a 4 bits-static int LCDsendstream(char c.//CONFIGURACION EN MODO NORMAL TCCR0B=0X05.h" //---caracteres a usar--unsigned char seg=0. NULL.//pi n como salida TCCR0A=0x00.h> #include <util/delay. static int LCDsendstream(char c .h> #include <stdio. PORTB&=~(1<<PB0).c * * Created: 09/07/2012 16:55:15 * Author: user */ #include <avr/io. static FILE lcd_str = FDEV_SETUP_STREAM(LCDsendstream. unsigned char hora =0. if (seg >=20)//CUENTA EL TIEMPO { seg=0.//PRESCALER DE 1024 VALOR 101 .h> #define F_CPU 8000000UL #include "lcd_lib. FILE *stream).h> #include<avr/interrupt. _FDEV_SETUP_WRITE). PORTB ^=(1<<PB0). unsigned char min=0.

0). dual line. } // } return 0. _delay_ms(100).1).datasheetcatalog.com/2009/12/01/proyecto-relogdigital-basico-con-atmega/ http://relojatmegadigital.TIMSK0|=(1<<TOIE0). // Iniciando LCD Stream LCDinit(). printf("%d". while(min<10) //loop demos { min++. LCDGotoXY(1.com/doc/19073773/Capitulo7-Timer1-del-AVR-del-ATmega32espanol http://microcontroladores2utec.wordpress. //clears LCD LCDclr(). cursor right LCDclr(). //init LCD bit. LCDGotoXY(1.org/datasheet/vishay/016m002b. sei().pdf . TCNT0=177. printf(" Contador").min). BIBLIOGRAFIA:     http://es. stdout=&lcd_str.scribd.com/ http://www.blogspot.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->