]> git.piffa.net Git - sketchbook_andrea/blobdiff - advanced_projects/interrupts/interrupt_base_volatile/interrupt_base_volatile.ino
interrupts
[sketchbook_andrea] / advanced_projects / interrupts / interrupt_base_volatile / interrupt_base_volatile.ino
index 6dff6fea7d227d1f5039e9f9aa1dbf3a78e0457b..72a448cd29e3a327a807c4e5f917aa01bb2f3df9 100644 (file)
@@ -8,6 +8,9 @@
  * e riconfigura l'interrupt con RISING a una seconda
  * ISR che a sua volta ripristina il comportamento
  * precedente.
+
+ In questa versione le ISRs modificano una variabile state
+ corrispondente allo stato del bottone, impostato nel loop.
  */
 
 const byte ledPin = 13;
@@ -30,6 +33,10 @@ void loop()
   digitalWrite(ledPin, state);
   // La variabile state viene richiamata fuori dalla ISR
   // quindi deve essere dichiarata volatile
+// altrimenti il compilatore potrebbe decidere di trattarlo come constante
+// in fase di ottimizzazione
+// oppure si potrebbe creare un dualismo tra il valore di questa
+// storato in SRAM o in un registro
 }
 
 void eventoFall() // Sempre VOID