AVR: Watchdog como interrupción temporizada

En este tutorial estoy usando un microcontrolador Attiny85 y quiero un LED a destellar en el intervalo de aproximadamente 1 segundo.

Generalmente con Arduino y otros tutoriales de blink solo usas un retardo de 1 segundo o 1000 milisegundos para encender y apagar. En este tutorial vamos a utilizar una función especial de la MCU que rara vez reciben la atención merecen.

EL PERRO GUARDIÁN
Ahora que deje que el perro le podría decir, y me río... jaja...

El watchdog se utiliza normalmente como medida de seguridad, por si el MCU está en un lugar inalcanzable y cuelga por alguna razón, no tienen forma de resetearlo y haz que vuelva a funcionar. Por lo que el vigilante es una parte casi separada de la MCU, tiene un reloj propio (normalmente un circuito RC) y un prescaler de este reloj, ahora lo que no tiene es una comparación de temporizador o una manera de establecer una sincronización precisa. Hay sólo el desbordamiento.

Ahora para un ATtiny85 hay 10 diferentes configuraciones de escala a utilizar, de 16ms a 8 segundos (véase p.46 ficha técnica para más detalles). Normalmente el watchdog se utiliza para restablecer el MCU pero también se puede definir para ejecutar una interrupción.

En primer lugar, vamos a comenzar con establecer el dispositivo de vigilancia.

Esta es la manera segura de configurarlo, la razón por qué hacer alguna "limpieza" en el principio es para asegurarse de que conseguimos lo que queremos. estática y quién sabe lo que pueden estropear un microcontrolador por lo que es bueno para hacerlo bien, si no desea estar a salvo, todo lo que necesitas es esta línea

Ahora tenemos que configurar el dispositivo de vigilancia y no hacer nada, bueno no realmente, como el perro guardián es una medida de seguridad tiene algunos movimientos intrincados. En este caso le estamos diciendo a que ejecute un ISR cada 500ms (aproximadamente) pero no hemos hecho un ISR para él sin embargo, y como dije esta función tienen algunas formas intrincadas de funcionamiento así que cuando se ejecuta el ISR, el vigilante cambia automáticamente del modo de interrupción para reiniciar modo!!!
A menos que el modo de interrupción se vuelve a activar en el ISR

Por lo tanto, vamos a hacer un ISR blinky

Ahora tenemos un ISR que voltea el LED conectado al PORTB3 enciende y apaga cada 1/2 segundo y vuelve a habilita la interrupción.
¿No era tan fácil?

Aquí está el completo archivo c MrBlinky.

Artículos Relacionados

Tutorial de ensamblador AVR 8

Tutorial de ensamblador AVR 8

Bienvenido a Tutorial 8!En este breve tutorial vamos a tomar un poco de diversión de introducir nuevos aspectos de la programación de lenguaje ensamblador para mostrar cómo mover nuestros componentes prototipos a un separado "" del circuito impr
Cronógrafo de AVR desde el concepto de PCB

Cronógrafo de AVR desde el concepto de PCB

un cronógrafo es un dispositivo utilizado para medir la velocidad de un objeto de paso.  En forma más simple, se trata de dos sensores de algún tipo que 'vea' el objeto, un dispositivo que puede medir el tiempo, y alguna salida para entregar los dato
Crear una interrupción externa en arduino

Crear una interrupción externa en arduino

Adruino tiene varios tipos de interrupciones. Interrupción es un proceso por el cual arduino detiene su tarea regular o detener su bucle e ir a interrumpir la función para completar su tarea de función de interrupción dado. Interrupción externa cread
Conectar Nokia 3310 LCD al USB usando AVR

Conectar Nokia 3310 LCD al USB usando AVR

¿Qué haces con un teléfono antiguo, un microcontrolador y un montón de tiempo?Usted gancho pantalla de LCD de teléfono antiguo para el USB de la computadora por supuesto!En este proyecto a que vamos comunicar con un display de Nokia 3310 LCD por el p
Potencia tu Arduino/AVR con una batería de Hand-Cranked

Potencia tu Arduino/AVR con una batería de Hand-Cranked

si alguna vez has querido a tu Arduino o AVR de la energía de una batería de pruebas de desarrollo (las baterías tienen cualidades de entrega de alimentación diferente que, digamos, AC transformado o incluso una fuente regulada de DC) pruebas pero es
Serie TTL AVR ISP

Serie TTL AVR ISP

Este es mi primer artículo. Hay muchas áreas sobre la creación de un instructables que soy nuevo.Sólo quiero compartir un circuito simple y espero ayuda a las personas empezar con AVR que no tiene un programador y como construir uno.Este artículo est
Cómo programar un AVR (arduino) con otro arduino

Cómo programar un AVR (arduino) con otro arduino

este instructables es útil si:* tienes tu arduino con atmega168 y compraste un atmega328 en le tienda de electrónica local. No tiene un bootloader de arduino* usted quiere hacer un proyecto que no usa arduino - sólo un chip AVR regular (como el USBTi
Monitoreo de la calidad de aire automático cruise robot

Monitoreo de la calidad de aire automático cruise robot

GeneralHice un cuatro ruedas de automático cruise robot con Arduino y tipos de sensores. Luego añadí control remoto inalámbricocontrol a él. Al final, incluso construí una máquina de control de calidad de aire en el robot y pasó a ser muy útil.Por fa
Junta mínima ATmega DIP40

Junta mínima ATmega DIP40

Después escribí varios artículos sobre el uso de microcontroladores ATmega (DIP40) en el entorno de Arduino tuve algunos comentarios que me pidieron ser efectivamente puesta en marcha de este proyecto. Como vino en el mundo de Arduino de mundo de des
Usando un codificador de cuadratura con un ATtiny 2313 y un Display OLED

Usando un codificador de cuadratura con un ATtiny 2313 y un Display OLED

en este instructable aprenderás cómo utilizar un codificador (ver http://en.wikipedia.org/wiki/Rotary_encoder) con un microcontrolador y cómo mostrar el valor numérico como una barra y un valor numérico en una pantalla OLED. Ver el vídeo a continuaci
Atmel Inicio 2: Fusibles y circuitos de microcontroladores

Atmel Inicio 2: Fusibles y circuitos de microcontroladores

M. A. Parker c2015Fusibles y circuitos crea un circuito simple pero importante en protoboard de un experimentador que se utilizará como plataforma básica para muchos proyectos de microcontrolador y los parámetros del microcontrolador (es decir, fusib
Arduino y CueCat escáner de código de barras

Arduino y CueCat escáner de código de barras

he tenido un escáner de código de barras cuecat sentados por más de 10 años. Básicamente se conecta a un puerto PS2 (al parecer hay una version USB) como un teclado y escupe hacia fuera un código de barras cuando se analizan. Bonito!. Lo molesto es q
Arduino persistencia de visión Mostrar

Arduino persistencia de visión Mostrar

una persistencia de la pantalla de la visión (PoV) es una fila de LED que flash a columnas de un mensaje.  Cuando la matriz de LED se mueve, como cuando se monta en una rueda de bicicleta, el mensaje puede ser leído como si fuera todo de muchos LED,
Convertir tu computadora en un Control de botón fácil Staples (tm)

Convertir tu computadora en un Control de botón fácil Staples (tm)

Este proyecto está inspirado por varios existentes hacks de botón fácil realmente creativos que he visto en Instructables.  Este es un poco más barato que los otros.  No es inalámbrico, ni un espectáculo de juego y toma un poco más trabajo, pero podr