La mia prima volta in C++
tutto è nato da una richiesta che sembra volere un albero di natale:
https://forum.arduino.cc/index.php?topic=614683.msg4165864#msg4165864
dopo un po' di discussioni avevo ottenuto una cosa decente (almeno secondo me) con strutture e array e for e tutto il circo
poi qualcuno (quasi più bravo di me) mi ha "rubato" 12 byte di variabili
e adesso, per non sporcare il trhead (si scriverà così?)
per non sporcare la discussione, come consigliato, apro questa nuova discussione con una proposta di programma, che fa uso di strutture, array, cicli e...
(rullo di tamburi...) Super trooper puntati su di me , grazie
una funzione dentro una struttura
(mamme, allontanate i bambini, sta arrivando l'anticristo, l'imperatore Palpatine, il cattivo definitivo...
Sarò dannato per l'eternità, ho scritto roba C++, pur se "truccata" da 'C'
// di Nelson StandardOil
// Idea da sviluppare:
// 6 luci casuali
typedef struct
{
byte pin; // pin associato alla luce
unsigned long int tempo; // ultimo tempo di commutazione
unsigned int periodo; // intervallo per commutare
void lampeggia(void)
{
// per sapere se deve lampeggiare
if (millis() - tempo > periodo && periodo)
{
tempo = millis();
digitalWrite(pin , !digitalRead(pin)) ;
}
}
} Luce; // la struttura che descrive il singolo canale di luci
Luce luci[] = {{2, 0, 0}, {3, 0, 0}, {4, 0, 0}, {5, 0, 0}, {6, 0, 0}, {7, 0, 0}};
#define LUCI sizeof(luci) / sizeof(luci[0]) //era #define LUCI 6
#define PUL 8 // pulsante
void setup(void)
{
for (byte i = 0; i < LUCI; i++)
{
pinMode(luci[i].pin, OUTPUT);
}
}
void loop(void)
{
if (digitalRead(PUL))
{
randomSeed(millis());
for (byte i = 0; i < LUCI; i++)
{
luci[i].periodo = random(50, 700);
}
}
for (byte i = 0; i < LUCI; i++)
{
luci[i].lampeggia();
}
}
Lo sketch usa 1526 byte (4%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Le variabili globali usano 55 byte (2%) di memoria dinamica, lasciando altri 1993 byte liberi per le variabili locali. Il massimo è 2048 byte.
sono passato al lato oscuro.....
Che K&R abbiano pietà della mia tastiera................