Pages: [1]   Go Down
Author Topic: come tornare al void loop interrompendo una funzione in corso?  (Read 866 times)
0 Members and 1 Guest are viewing this topic.
Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 955
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

io vorrei fare un codice del genere:

Code:
void loop()
{
 ....
 function();
 ....
}

void function()
{
...
control();
...
}

void control()
{
 if(digitalRead(2)==1)
 { /* qui vorrei far ripartire il loop */ }
 else
 {....}
}

ma non saprei come far ripartire il void loop da una funzione, con il goto non posso farlo perchè il tag sarebbe fuori dalla funzione, avevo pensato di richiamare il loop facendo "loop();" ma non penso vada bene  smiley-confuse
avete qualche idea da suggerirmi? grazie in anticipo smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21266
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fai un "return(0)" nella funzione "control()" e un
"if(!control())return();" nella funzione function();

Code:
void loop()
{
 ....
 function();
 ....
}

int function()
{
...
if(!control())return();                         // se valore zero ritorna al loop()
...
}

int control()
{
 if(digitalRead(2)==1)
 { return(0);                                    // rende un valore zero come valore di ritorno
 }
 else
 {....}
}

Ciao Uwe
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 955
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

vero!! smiley-grin non ci avevo pensato! grazie mille! smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Pages: [1]   Go Up
Jump to: