Externa se interrumpe en parte MPIDE 1: attachInterrupt() (8 / 11 paso)

Paso 8: Variables volátiles

Mencioné antes porque no intento manipular salidas directamente dentro de mis interrupciones, utilizamos la variable LEDstate para manipular indirectamente a nuestro LED. Esto requiere una variable especial llamada "volátil" variable.

MPIDE tiene optimizadores de código que ayudan a la función del microcontrolador más rápido y más suavemente. Una de las cosas que estos optimizadores hará es tomar variables que no cambian y se hacen en constantes, ahorrando espacio en la memoria. Desafortunadamente, dado que nuestra variable LEDstate no se utiliza en el bucle principal y la función que hace utilizarla (LEDchange()) no es llamada en el bucle principal, estos optimizadores ver LEDstate como una variable que no cambia y lo convierten en una constante, que causa problemas cuando la interrupción intenta cambiarlo.

Ahora, sabemos que LEDstate no es una constante, pero nuestro código no. Afortunadamente, podemos decir nuestros optimizadores que LEDstate no es una constante, y hacer haciéndola en una variable "volátil".

Entonces, usted podría pensar que usted debe hacer todas las variables volátiles, para garantizar que su optimización no accidentalmente hace constantes cuando no debe, pero esto sería una mala idea.

Debido a las variables cómo volátiles se almacenan en la memoria, son un poco más lentos responder que las variables normales. Eso significa que si usted llama con frecuencia sus variables, puede ralentizar el código significativamente. Afortunadamente, porque la mayoría de nuestras aplicaciones de interrupción se denomina tan raramente, esto no termina siendo un problema, pero quiere decir que sólo hacen las variables utilizadas en el volátil de interrupciones.

Artículos Relacionados

Externa se interrumpe en parte MPIDE 2: setIntVector()

Externa se interrumpe en parte MPIDE 2: setIntVector()

En mi anterior I'ble enseñó una forma muy sencilla para interrupciones externas en el DP32 uC32 y WF32 *. Interrumpe, sin embargo, son cosas realmente complicadas y si bien es agradable tener una función simple tiene cuidado de todo, como attachInter
Interrupciones contra rebotes con MPIDE parte 1: fuerza bruta

Interrupciones contra rebotes con MPIDE parte 1: fuerza bruta

Ya es hora ¿no?¡Bienvenido! Si has estado siguiendo a mis I'bles hasta este punto, he mostrado dos maneras diferentes de configurar interrupciones en MPIDE usando attachInterrupt() y setIntVector(). En el primero de esos tutoriales, explicó lo que "r
Color cambia Larson Scanner

Color cambia Larson Scanner

Video de escáner en acción. Sí, estoy girando manualmente a través de los colores.¿Quien no ama a KITT, el coche del superhéroe de jinete de la noche? El uno con la luz brillante que despide de un escáner de Larson en el frente. Este escáner fue tan
Mockingjay colgante

Mockingjay colgante

Inspirada en la increíble serie de juegos del hambre, decidí hacer este colgante. Para ser honesto, es un proyecto que había planeado durante bastante tiempo ahora (aproximadamente tres años). Sin embargo, originalmente planeaba hacer un colgante de
Cómo hacer un arma de Gatling de goma K'NEX con modos seleccionables en coche

Cómo hacer un arma de Gatling de goma K'NEX con modos seleccionables en coche

En este tutorial usted aprenderá cómo hacer un arma de Gatling de la banda de goma (también conocido como "minigun") de K'NEX.Las características de arma 8 barriles que cada uno puede sostienen unos 4 gomas para un total de 32 rondas de munición
Reciclado moderno estante de madera

Reciclado moderno estante de madera

Así que este proyecto empezó cuando mi mamá tuvo algunos pisos de madera ponga en su casa... Si alguna vez alguien ha instalado plantas, que está obligado a tener piezas adicionales, cortes de desecho o de no utilizar la caja entera que tuviste que c
NERF lanzador de aviones de papel

NERF lanzador de aviones de papel

La definición de 'ciencia' es,"La actividad intelectual y práctica que abarca el estudio sistemático de la estructura y comportamiento del mundo físico y natural a través de la observación y el experimento."Puesto en términos más sencillos, la c
Caja de joyería de madera corte láser

Caja de joyería de madera corte láser

Este Instructable le guiará a través de todos los pasos necesarios para hacer una caja de joyería de madera corte láser totalmente personalizable! Esta caja de joyería contiene dos alas plegables con almohadillas de espuma raso, tres estantes diseñad
Candy Vault - caja de madera con cerradura mecánica del secreto

Candy Vault - caja de madera con cerradura mecánica del secreto

Caja de madera con cerradura mecánica del secreto.Este juguete protegerá tus caramelos de ser comido por extraño :)Ideal para proteger tus caramelos de los niños o pequeños sicrets de nadie.Material: madera contrachapada/maderaMontaje: DIY o se reuni
Cómo hacer un corsé Steampunk

Cómo hacer un corsé Steampunk

Costo estimado: ~ $30-$50 (más si ya no tienes las herramientas necesarias)Tiempo de finalización estimado: 10-15 horasDificultad: Moderada pero accesible a los recién llegados_______________________________________________________________________He
Corsé para el profesional

Corsé para el profesional

costo estimado: ~ $30-$50 (más si ya no tienes las herramientas necesarias)Tiempo de finalización estimado: 15-20 horasDificultad: Moderada - desafiante (dependen del nivel de habilidad)________________________________________________________________
¿Independiente 16 dígitos - Arduino Attiny85 &

¿Independiente 16 dígitos - Arduino Attiny85 &

Ever quería un display de 7 segmentos para alrededor de la casa? ¡ Aquí está tu oportunidad de hacer uno!Puede incluso ser interactivo basado en la programación.Partes:($7,60) 16 dígitos TM1640 basado en pantallaDealextreme.com SKU: 104311http://www.
Sólidos 3D de formas concéntricas de Morphing 2D

Sólidos 3D de formas concéntricas de Morphing 2D

desarrollé esta manera fácil de crear sólidos 3D de 2D concéntricos morphing formas en Makerplace en San Diego, CA con su láser de huracán de 100 vatios. Usted puede cortar los objetos de una variedad de materiales, como madera contrachapada, MDF, ba
Cómo hacer un Soft-potenciómetro

Cómo hacer un Soft-potenciómetro

electrónica siempre es divertido cuando intenta intervenir con algo de su interés, como la elaboración. ¿Qué circuitos de costura en tela en lugar de conectar en el protoboard? Este instructable es sobre cómo hacer un soft-potenciómetro simple 'alamb