Ciao,
vorrei capire se è possibile definire variabili locali, quindi all'interno di una funzione, solo la prima volta che la funzione viene chiamata.
Mi spiego, ho un programma di questo tipo:
void setup(){
}
void loop(){
blink();
}
in un altro file .ino
void blink(){
/* DEFINIZIONE VARIABILI LOCALI*/
*
*
*
/* FINE DEFINIZIONE VARIABILI LOCALI*/
/* SETUP */
*
*
*
/* FINE SETUP*/
/* COSE DA FARE*/
*
*
*
/*FINE COSE DA FARE*/
}
il mio obbiettivo è creare delle funzioni che siano quasi del tutto svincolate dal programma che le richiamerà. Ogni funzione sarà un piccolo programma a se stante e non potrà essere chiamato in "contemporanea" ad un altra funzione.
Non riesco a capire se è possibile definire le variabili una sola volta e non ad ogni chiamata di funzione. Ovviamente se uso una flag con un if, le variabili entrano nella funzione if e il gioco non sta più in piedi. Le variabili dovrebbero poter essere re-impostate solo entrando in un'altra funzione almeno una volta, e successivamente tornare alla funzione precedente.
Siccome ogni funzione è inserita in un file separato dal programma principale, ho pensato di dichiarare le variabili come static, ma, utilizzando lo stesso nome per una variabile (posta in due funzioni diverse), non riesco a compilare. Come mai? La dichiarazione static non serve proprio a quello?
esempio:
/* DEFINIZIONE VARIABILI LOCALI*/
*static int pincopallo = 0;
*
*
/* FINE DEFINIZIONE VARIABILI LOCALI*/
void blink(){
/* DEFINIZIONE VARIABILI LOCALI*/
*
*
*
/* FINE DEFINIZIONE VARIABILI LOCALI*/
/* SETUP */
*
*
*
/* FINE SETUP*/
/* COSE DA FARE*/
*
*
*
/*FINE COSE DA FARE*/
}
/* DEFINIZIONE VARIABILI LOCALI*/
*static int pincopallo = 0;
*
*
/* FINE DEFINIZIONE VARIABILI LOCALI*/
void blink_veloce(){
/* SETUP */
*
*
*
/* FINE SETUP*/
/* COSE DA FARE*/
*
*
*
/*FINE COSE DA FARE*/
}
Nel progetto reale, ad ogni funzione deve corrispondere un gioco di luci (strisce led), ecco perchè non ci saranno più funzioni attive in contemporanea.
Insomma mi servirebbe qualche delucidazione, se si è capito cosa voglio fare