volatile

volatile es una palabra clave conocidad como qualifier (cualificadora), se usa usualmente antes del tipo de datos de una variable, para modificar la manera en que el compilador y el programa deben tratar a esta variable.
La declaración de una variable volatile es una directiva del compilador. El compilador es un software que traduce el código C/C ++ en el código de máquina, que son las instrucciones reales para el chip Atmel en el Arduino.
Específicamente, el compilador carga la variable de RAM y no de un registro de almacenamiento, que es una ubicación de memoria temporal donde se almacenan y manipulan las variables del programa. Bajo ciertas condiciones, el valor de una variable almacenada en los registros puede ser inexacto.
Una variable debe ser declarada volatile cada vez que su valor pueda ser cambiado por algo más allá del control de la sección de código en la que aparece, como otro código que se ejecuta simultáneamente. En el Arduino, el único lugar que es probable que esto ocurra es en secciones de código asociadas a las interrupciones, que llaman a una rutina de servicio de interrupción.

Ejemplo

// conmuta un LED cuando una interrupción cambia es estado de un pin
int pin = 13; volatile int state = LOW; void setup() {
void loop()
pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } {
}
digitalWrite(pin, state); } void blink() {
state = !state;

No hay comentarios:

Publicar un comentario