+/*
+ struct
+
+ Struct e' un tipo struttura di dati non omogenea,
+ puo' contenere tipi di dati diversi a differenza di un array.
+
+ Possiamo quindi raggruppare diverse proprieta' di un oggetto
+ sotto lo stesso identificatore.
+
+Questa versione permette alla funzione lempeggia() di modificare una delle proprieta
+( lo stato) dello struct rosso. Il fatto e' che una funzione non potrebbe modificare
+dei dati al suo esterno! Al massimo potrebbe ritornare un valore...
+
+Per superare questo si invoca la funziona con un riferimento ( & ) al dato originale
+e poi nel corpo della funzione si usano pointers (foo->bar eqivale a (*foo).bar,
+l'operatore punto ha precedenza rispetto al pointer) per modificare un indirizzo di memoria
+esterno alla funzione.
+
+ Schema: http://lab.piffa.net/schemi/rgb.jpg
+ */
+
+
+#include "lamp.h"
+
+// instanziamo un lampeggino
+lampeggino rosso { 13, 1000, ">> Led Rosso <<"};
+
+void setup()
+{
+ pinMode(rosso.pin, OUTPUT);
+ Serial.begin(9600);
+}
+
+void loop()
+{
+ // Utilizziamo un lampeggiatore
+ lampeggia(&rosso);
+}