Hide minor edits - Show changes to markup
(:notitle:) (:include HautPageReference:)
Le mot-clé static est utilisé pour créer des variables qui sont visibles uniquement dans une fonction. A la différence des variables locales qui sont détruites et créées à chaque fois qu'une fonction est appelée, les variables static persistent au-delà de l'appel de la fonction, conservant leurs données entre deux appels de la fonction.
Les variables déclarées à l'aide du mot-clé static peuvent être créées et initialisées seulement la première fois que la fonction est appelée.
/* Marche au hasard
* Paul Badger 2007
* Marche au hasard erre entre deux limites
* Le mouvement maximum dans une boucle est régit par
* le paramètre "stepsize"
* Une variable statique évolue de part et d'autre d'une quantité aléatoire
* Cette techniqe est également connue comme le "bruit rose" ou "la marche ébrieuse"
*/
#define randomWalkLowRange -20
#define randomWalkHighRange 20
int stepsize; // déclare variable globale
int thisTime; // déclare variable globale
int total; // déclare variable globale
void setup()
{
Serial.begin(9600); // initialise connexion série
}
void loop()
{ // test la fonction randomWalk
stepsize = 5;
thisTime = randomWalk(stepsize);
Serial.println(thisTime);
delay(10);
}
int randomWalk(int moveSize){
static int place; // variable pour stocker la valeur dans la fonction - déclarée avec static et donc conserve la
// valeur entre 2 appels de la fonction et aucune autre fonction ne peut changer sa valeur.
place = place + (random(-moveSize, moveSize + 1));
if (place < randomWalkLowRange){ // fixe limites haute etbasse
place = place + (randomWalkLowRange - place); // direction positive
}
else if(place > randomWalkHighRange){
place = place - (place - randomWalkHighRange); //direction négative
}
return place;
}
Aucun commentaire
(:include BasPageReference:)