Inicio microcontroladores parte 12: Intro interrupciones

En esta parte del tutorial que vamos a hablar acerca de las interrupciones de trabajo usando el contador por ejemplo. Interrupciones mejoran el uso de microcontroladores de forma enorme. Interrupciones hacen sus programas reaccionan con el hardware de microcontroladores, que puede ser una reacción del circuito fuera del microcontrolador.

En términos básicos, una interrupción es exactamente lo que se dice como. Interrumpe un flujo de programa ejecución normal para realizar otra tarea (otro bloque de código que se programa). Decir por ejemplo el programa está haciendo normal LED parpadeante y quiere reaccionar a un sensor PIR (conectado a un pin de interrupción) y va a un bloque de código especial para hacer un sonido de un buzzer conectado al pin de otro. Si dices el microcontrolador para hacer esto, dejará el programa muerto e ir al código que pertenece a la interrupción (haga un pitido). Después de ejecuta el código de la interrupción, el programa dejó reanuda exactamente donde se quedó. En algunos ejemplos, interrupciones sería una alternativa a la votación, que requiere ciclos de programa. Dicen que su programa es querer un sólo pitido cuando alguien pasa por el sensor de PIR. Su programa podría seguir probando ese pin para ver si tiene una lectura alta una y otra vez dentro del bucle que nunca termina (a la vez (1)). Como alternativa, quite todo el código de programa electoral para verificar el pin de una lectura alta y permite la interrupción proceder automáticamente al código de sonido cuando el microcontrolador detecta la lectura alta.

¿Qué tipos de interrupciones están disponibles para el Microcontrolador AVR? Interrupciones pueden establecerse para eventos como el número de un contador, un pin cambio de recepción de comunicación de estado (de baja a alta o viceversa) de información o la analógica a Digital, habiendo establecido una conversión. Aquí está una lista de vectores de la interrupción que puede utilizar. Otros tutoriales hará uso de muchos de estos vectores.

Vamos a utilizar el temporizador/contador por ejemplo. Diremos el temporizador/contador un número que la TCNT1 (el contador) tendrán que coincidir. El número a voy a entrar en un registro llamado OCR1A (Comparar registro de salida). El "1" representa el contador específico estamos usando que es la versión de 16 bits. Tenemos dos OCR, la A y la B. Se utilice A este ejemplo. Pero ¿sabemos si el contador se reseteará a cero cuando se realiza el encuentro? Definitivamente queremos TCNT1 para volver a cero así que la cuenta será empezar y conseguimos otro partido en nuestro número previsto, pero esto no se hace en el código como lo hicimos la última vez (recordar el TCNT1 = 0;). Esta vez, queremos activar otro interruptor en el registro de control TCCR1B llamado WGM12 (forma de onda modo de generación para el temporizador 1). El #2 en que el interruptor solo representa que WGM es, ya que hay unas cuantas. También utilizaremos el CS10 y CS11 otra vez para ajustar la escala a 64 como en la intro para video de temporizadores.

Entonces el temporizador/contador se necesita saber que tenemos la intención de utilizar la función de interrupción. Esto se hace mediante la TIMSK (temporizador/contador interrumpir máscara de registro). Sólo tenemos que encender un interruptor en este registro: el OCIE1A (salida comparar un partido interrupción habilitar) interruptor. Una vez que el número puesto en la OCR1A se corresponde con el contador, se interrumpirá el programa para cambiar el LED. Para una interrupción que ocurra, tendremos que habilitar las interrupciones globales "sei()", entonces tendremos que permitir la interrupción del temporizador/contador y finalmente la rutina de servicio de interrupción (ISR) tendrá que ser creado. La rutina de servicio de interrupción es como las funciones que se realizaron en el ejemplo de botón de juego. La rutina de servicio de interrupción es sólo un bloque de código fuera de la rutina principal y comienza con el ISR con el vector dentro de paréntesis "(vector)", permitido por el bloque de código entre corchetes "{codigo}". Para el temporizador/contador (versión de 16 bits) y el hecho de que estamos utilizando una versión de la OCR1, el nombre del vector es: TIMER1_COMPA_vect. Por lo que la rutina sería: ISR(TIMER1_COMPA_vect) {código a ejecutar}. Utilizamos un número en la introducción al vídeo de temporizadores que representó un segundo: 15625, así que vamos a utilizar este otro para el OCR1A. Sin embargo, el número debe considerar la indización de 0, por lo que tendremos que utilizar en su lugar el número 15624.

Artículos Relacionados

Principio microcontroladores parte 3: Transferencia de un programa en el microcontrolador (conductores)

Principio microcontroladores parte 3: Transferencia de un programa en el microcontrolador (conductores)

¡ Bienvenido a parte 3. Este es un pequeño tutorial que tratará simplemente cargar los controladores para hacer que el programador pueda comunicarse con el ordenador correctamente.Tenga en cuenta que a veces los dispositivos TinyISP y USBAVR ahora vi
Principio microcontroladores parte 5: Pruebas del programador y la construcción del primer circuito

Principio microcontroladores parte 5: Pruebas del programador y la construcción del primer circuito

Hasta ahora, tienes todo el software instalado y había construido la interfaz que proporcionará una conveniente conexión del programador al microcontrolador (MCU). Para el siguiente paso, usted necesitará un protoboard (los números son muy útiles), u
DIY Robot RC con su Android teléfono Tutorial parte 2: Bluetooth/microcontrolador partes y cableado

DIY Robot RC con su Android teléfono Tutorial parte 2: Bluetooth/microcontrolador partes y cableado

en la parte 2 de este tutorial, se introducen detalles de piezas y el cableado. Usted aprenderá cómo construir el Control del Robot RC paso a paso. También proporciona la base para la parte 3 que se muestra cómo conectarse a un puente H y motores. ¡
Partir de microcontroladores parte 1

Partir de microcontroladores parte 1

Esta es la primera de una larga serie de tutoriales dirigidos a proporcionar una guía de principiantes y un tutorial basado en el Microcontrolador AVR de Atmel Atmega32. Voy a mostrar que, a través de ejemplos y proyectos, cómo programar y prever fun
Principio microcontroladores parte 11: Temporizadores, contadores y el reloj del microcontrolador

Principio microcontroladores parte 11: Temporizadores, contadores y el reloj del microcontrolador

Temporizadores y contadores son tan esenciales que usted verá muchos ejemplos que a lo largo de esta serie. Como el nombre lo dice, se utilizan temporizadores para tiempo y contando. Cuenta y el tiempo le permite hacer algunas cosas muy prolijo como
Principio microcontroladores parte 2: Creación de una interfaz SPI del programador para el microcontrolador

Principio microcontroladores parte 2: Creación de una interfaz SPI del programador para el microcontrolador

Hola, esperamos que te ha gustado la parte 1 del principio microcontroladores. Vamos a mover a lo largo de a parte 2 y empezar a hablar acerca de cómo obtener tu microcontrolador para comunicarse con una computadora e interfaces.Por lo tanto, en este
Principio microcontroladores parte 4: Instalar el entorno de programación (WinAVR)

Principio microcontroladores parte 4: Instalar el entorno de programación (WinAVR)

Bienvenido al siguiente paso en nuestra serie. Vamos a introducir algunos elementos básicos de programación ahora. Este tutorial es simplemente acerca de cómo instalar el entorno de programación. El entorno de programación que vamos a usar se llama W
Principio microcontroladores parte 8: Agregar un botón al microcontrolador y lo que es hacer algo

Principio microcontroladores parte 8: Agregar un botón al microcontrolador y lo que es hacer algo

Una manera muy simple y fácil para proporcionar para la interacción humana con el microcontrolador es insertar un botón en el circuito. Comunicarse con equipos mediante dos principales dispositivos de entrada: el ratón y el teclado. Un teclado no es
Principio microcontroladores parte 6: Escribir el primer programa para encender un LED

Principio microcontroladores parte 6: Escribir el primer programa para encender un LED

Sé que estás listo para escribir el primer programa. Han sido a través de mucho hasta ahora! Mientras estamos en el tema, vamos a recapitular los acontecimientos. Salió y compró el Microcontrolador AVR de Atmel de su elección. Elegí theATMega32 para
Principio microcontroladores parte 9: Botón y Software contra rebotes métodos

Principio microcontroladores parte 9: Botón y Software contra rebotes métodos

En esta parte del tutorial vamos a discutir el botón y software contra rebotes.Queremos estudiar botón contra rebotes primero y en detalle, así que tenemos una buena comprensión de lo que ello conlleva. Botón contra rebotes es importante y no debe se
Principio microcontroladores parte 13: Introducción a la interfaz de LCD

Principio microcontroladores parte 13: Introducción a la interfaz de LCD

El microcontrolador es una maravillosa pieza de ingeniería y puede hacer muchas cosas (con la ayuda de alguna gran programación), pero sigue siendo una caja negra opaca. Si desea compartir información, o mostrar lo que está tratando de hacer, necesit
Principio microcontroladores parte 7: Revisar el primer programa para hacer el parpadeo del LED

Principio microcontroladores parte 7: Revisar el primer programa para hacer el parpadeo del LED

Ha escrito el primer programa, que enciende un LED. sí, eso fue espectacular! Bueno, no realmente, pero vamos a introducir un poco de locura para el LED. Le daremos una personalidad "bipolar" por lo que es blink. Luego paso a otro nivel y hacer
Tutorial de microcontroladores parte 10: Crear un juego (el botón)

Tutorial de microcontroladores parte 10: Crear un juego (el botón)

Ahora estamos listos para aplicar lo que sabemos y hacer un juego real. El juego consistirá en un par de botones y dos conjuntos de LEDs (2 filas de 7). El objetivo del juego es ver que entre dos personas puede presionar su botón más veces en la meno
Detector de movimiento PIR con Arduino: Funciona en el modo de consumo de energía más bajo

Detector de movimiento PIR con Arduino: Funciona en el modo de consumo de energía más bajo

Este video demuestra rápido y acercamiento fácil de reducir el consumo de energía de ATMEGA 328p basado en placas Arduino en torno al 70-75% mediante sensores PIR o PID para detección de movimiento.Este proyecto introduce a raíz de las cosas-1) inter