¿Una guía completa de arranque AVRs (6 / 10 paso)

Paso 6: contadores de tiempo

Temporizadores son un versátil elemento de micros, una vez que aprendas cómo utilizarlos usted encontrará una multitud de cosas con ellos para!

Un temporizador es un dispositivo de conteo simple en su micro, también es conocido como un contador para ello.
En cada tick incrementan a ellos mismos.
Usted puede comprobar el valor cuando se necesita una idea de cuánto tiempo ha pasado, o puede llegar a provocar una interrupción para hacerle saber cuando ha alcanzado un cierto valor.
Contadores de tiempo no son muy precisos, si necesitas exactitud desea un reloj de tiempo real (RTC).
Son sin embargo bastante bueno para tareas más

Así que antes de llegar a él, vamos a explorar cómo funciona un contador de tiempo.
Cada pulso de reloj del micro se alimenta en el módulo de temporizador.
Aquí se puede dividir por diferentes cantidades para producir una señal más lenta (llegaremos a eso más adelante).
En la señal que sale del prescaler, el temporizador agrega 1 al valor de su registro.

Como los registros que ya hemos cubierto, éste se puede leer o escrito.
Se puede ver lo que es el conteo de garrapatas en, y basado en la velocidad de reloj y el divisor, se puede determinar aproximadamente cuánto tiempo ha pasado.
Cuando el temporizador llega a su límite (255 para un temporizador de 8 bits, 65535 para un temporizador de 16 bits) se restablece a 0 y empieza a contar otra vez.
Si habilita interrupciones le avisará su código que esto ha sucedido.
También puede establecer un valor de comparación que se disparará una interrupción Si desea ser informado de un tiempo el es más corto y desbordamiento.

Si usted necesita medir un largo periodo de tiempo, puede usar un prescaler de reloj (piense de él como un divisor).
Por ejemplo, un prescaler de 8 sólo enviará una señal al contador después de que ha recibido 8 ticks de reloj del sistema.
Pierdes precisión pero puede medir un largo periodo de tiempo.

Si desea medir un período muy largo de tiempo (digamos 10 minutos, que es mucho tiempo para que su micro rápido!), usted puede contar cuantas veces el flujo interrupción se activa y actuar en base a.

Una manera fácil de trabajar en la configuración del reloj es utilizar una calculadora como esta:
http://Frank.circleofcurrent.com/cache/avrtimercalc.htm

Por lo tanto, suficiente explicación, vamos a entrar en algo de código!

El ejemplo se va a mostrar cómo utilizar la interrupción de desbordamiento para períodos más prolongados de tiempo, para ver como para periodos más pequeños (microsegundos y milisegundos por ejemplo), echa un vistazo al código de receptor de IR, que hace un uso extensivo de ellos a tiempo las señales de control remoto entrantes.

Configurar tu placa como en la imagen y descargar el código adjunto. (Configurar reloj del micro a 1MHz)
Cuando usted presiona el botón, el LED se enciende y encendida durante 30 segundos.
Si Presione nuevamente el botón, el temporizador se reiniciará.

Así que vamos a examinar el código.
El bucle principal es bastante estándar, configurar el LED y el botón Habilitar interrupciones (no se olvide esto!).
Cuando se presiona el botón de llamar a la función "start_timer".

start_timer establece el prescaler a 1024, permitir la interrupción de desbordamiento para el timer0, claro nuestra overflow_count y poner el temporizador.
Ahora, cada vez que el reloj va más de 255, la interrupción se llama.

La interrupción es la función especial llamada ISR(TIMER0_OVF_vect)

Aquí comprobamos si hemos desbordado suficientes veces (calculadas con la Web de la calculadora anterior), y si tenemos que desactivar la interrupción para el reloj y apagar el LED.
De lo contrario simplemente incrementar nuestra cuenta y dejar que el temporizador a empezar de nuevo.

Bastante sencillo ¿verdad?
Aunque la belleza de ella es que puede tener otro código que se ejecuta mientras el temporizador de cuenta.
Cuando desborda habrá un desvío leve a la interrupción servicio rutinario (ISR), y una vez que se hace volverá a su código previamente funcionando como si nada hubiera sucedido!
Mejor que un simple retraso, como puede hacer más trabajo o ir a dormir para ahorrar energía!

Artículos Relacionados

Cómo hacer una espada: una guía completa de

Cómo hacer una espada: una guía completa de

Escribí la mayoría de esto mientras trabajé en el proyecto. Esta introducción servirá como reflexión general y análisis del proceso, así como una introducción completa como se esperaba.Bueno, aquí es. ¿Que siempre quisiste crear tu propia espada? Y n
Android aplicaciones para usar con un iPhone: una guía completa para instalar 3 aplicaciones en Android usar reloj junto con un iPhone

Android aplicaciones para usar con un iPhone: una guía completa para instalar 3 aplicaciones en Android usar reloj junto con un iPhone

¿Poseer un reloj Android usar con un iPhone?Aprenda cómo puede ampliar sus capacidades mediante la instalación de 3 aplicaciones de partido abajo!Relojes inteligentes son grandes. Tienen un montón de otras características útiles que no puede ofrecer
Etiqueta de polímero de litio: Una guía completa al trabajo con LiPo

Etiqueta de polímero de litio: Una guía completa al trabajo con LiPo

en este Instructable voy sobre los conceptos básicos de la correcta carga, descarga, manejo, uso, almacenamiento y el cuidado de las baterías de polímero de litio por lo que se pueden utilizar con seguridad y eficacia en sus proyectos futuros.  Ahora
Una guía completa de airsoft: principiante / nivel de entrada.

Una guía completa de airsoft: principiante / nivel de entrada.

Mirando el sitio, he visto un montón de instructables. "Airsoft: sobrevivir a la guerra. Guía de airsoft. Una guía para airsoft". Algunos de ellos son buenos, y algunos de ellos parecen que son lanzados juntos en un par de minutos. Por lo tanto,
$2 Arduino. El ATMEGA328 como independiente. Fácil, barato y muy pequeño. Una guía completa.

$2 Arduino. El ATMEGA328 como independiente. Fácil, barato y muy pequeño. Una guía completa.

En este instructable usted aprenderá cómo usar el Arduino ATMEGA328 microcontrolador chip como un microcontrolador independiente.Cuestan sólo 2 dólares, puede hacer lo mismo que tu Arduino y hacer tus proyectos muy pequeños.Cómo cubriremos el esquema
Cómo almacenar su K'nex eficaz: Una guía completa de

Cómo almacenar su K'nex eficaz: Una guía completa de

¡ Hola chicos!¿Quieres hacer tu K'nex construye más rápido, más eficientey mantener una cuenta de tus piezas? Bien, aquí es una manera! Tardará un par de horas, pero esto ahorrará días en su trabajo de construcción.Esta guía completa y sobre todo, te
Cómo obtener una versión completa de minecraft con Mineshafter.

Cómo obtener una versión completa de minecraft con Mineshafter.

Esta guía le mostrará una alternativa al gasto 20 $ por una membresía premium de minecraft.  Este es un servicio gratuito que permite a los usuarios el juego la demo antes de hacer la compra en el sitio minecraft.com. Esta versión de minecraft es idé
Una guía completa de motores K'nex

Una guía completa de motores K'nex

¡ Hola chicos! Ha pasado mucho tiempo desde que publiqué algo, así que decidí compilar información sobre motores de K'nex y poner para arriba para que todos pudieran obtener algún conocimiento acerca de ellos! Este será mi primer y solamente la entra
Construir un cobertizo simple: una guía completa de

Construir un cobertizo simple: una guía completa de

Aquí es un sólido derramado poco construí en el patio de mi casa.Es esencialmente un cubo de 8 pies, que es el tamaño ideal para guardar un montón de bicicletas, una cortadora de césped, carretilla y todas mis herramientas de jardinería.El diseño es
Una guía completa a la observación de aves

Una guía completa a la observación de aves

te has preguntado ¿cómo ver aves sin molestar a su hábitat natural? Esta guía le mostrará cómo.Paso 1: Paso uno: aprender sobre las aves Vivo en el país de América del norte, así que tengo un libro de aves en N.A. aves viven en diferentes regiones, a
Una guía completa de puentes a bordo en el kit del Intel Edison para Arduino

Una guía completa de puentes a bordo en el kit del Intel Edison para Arduino

Kit Intel® Edison para Arduino permite el Edison de Intel® compatible con Arduino shields diseñados para el R3 del UNO. La Junta de expansión de Arduino incluye varias cabeceras de jumper para configurar el tablero con diferentes ajustes como niveles
Una guía completa de vídeo para el cultivo de tomate "Pometa": principio a fin!

Una guía completa de vídeo para el cultivo de tomate "Pometa": principio a fin!

Este video muestra la historia de todo crecimiento de una planta de tomate heirloom 'Krim negro'. Se le mostrará:Cómo transplantar tomatesCómo construir jaulas de casa caliente (para la siembra temprana)Cómo podar los chuponesCómo crear una barrera d
Una guía completa para Airsoft

Una guía completa para Airsoft

han estado jugando Airsoft hace unos 2 años y soy adicto a este deporte. Y sí, es considerado un deporte! No hay suficiente gente lo reconoce como uno, así que quiero mantenerla, Sabe usted. Me encanta Airsoft porque es competitivo, hay mucha estrate
El estudio del galpon. Una reconstrucción completa.

El estudio del galpon. Una reconstrucción completa.

Hi.No soy constructor pero he re-construido nuestras tres casas durante un período de treinta años y a un nivel razonable - ish ;-)Un par de años que decidí hacer proyecto de mi vida a la parte superior de la lista de prioridades - no estoy recibiend