Go Down

Topic: boucle d'analogRead (Read 2078 times) 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy