Go Down

Topic: boucle d'analogRead (Read 1 time) previous topic - next topic

fdufnews

#15
Oct 07, 2009, 12:46 pm Last Edit: Oct 08, 2009, 08:55 am by fdufnews Reason: 1
Quote
ou soit un paramètre dans ta fonction (note que vu la nature de l'appelant (loop) tu va rencontrer le même problème pour déclarer ta variable...)

Code: [Select]

void loop{
 int toto=1;
 for(;;){
   fonction(toto);
 }

}

fonction(param){
 param=param+1;
 Serial.print(param);
}





Cette écriture ne permet pas à l'appelant de récupérer toto et donc d'incrémenter toto à chaque itération.
Il faut que fonction() retourne un entier

Code: [Select]


void loop{
  int toto=1;
  for(;;){
     toto=fonction(toto);
  }
}

int fonction (int param){
 int temp=param+1;
 Serial.print(temp);
 return(temp);
}


ou alors il faut passer par des pointeurs. Là c'est un peu lourd pour manipuler une pauvre variable. Par contre c'est efficace pour les tableaux et les structures.
Code: [Select]

void loop{
  int toto=1;
  for(;;){
     fonction(&toto);
  }
}

fonction (int* param){
 *param=*param+1;
 Serial.print(*param);
}


[edit]Oups j'ai fait une boulette dans la version avec pointeur, à l'intérieur de la fonction ce n'est pas toto qui doit apparaitre mais param bien sur. Correction effectuée[/edit]

elwing

arf, my bad en effet, il faut utiliser un pointeur... doh, merci fdufnews...

Go Up